Shr*_*r S 9 activerecord model find-by-sql ruby-on-rails-3
美好的一天!
我在rails 3中使用find_by_sql()来获取记录,如下所示.
@list=Email.find_by_sql(["SELECT * FROM Emails WHERE sent_id=?",params[:id]])
Run Code Online (Sandbox Code Playgroud)
如果多个参数适用于同一属性,如何修改相同的语句,例如:
@list=Email.find_by_sql(["SELECT * FROM Emails WHERE (sent_id=? OR from_id=?)",params[:id],params[:id]])
Run Code Online (Sandbox Code Playgroud)
这里,sent_id和from_id属性都接收相同的参数params [:id]
所以,不是两次传递相同的参数[:id],是否有任何机制可以根据顺序传递参数?
MrT*_*rus 20
您可以使用哈希来命名插值,如下所示:
@list = Email.find_by_sql(["SELECT * FROM Emails WHERE (sent_id = :id OR from_id = :id)", {:id => params[:id]}])
Run Code Online (Sandbox Code Playgroud)