2012-06-11 34 views
9

美好的一天!在Rails 3中使用數組格式的find_by_sql

我在rails 3中使用find_by_sql()來獲取記錄,如下所示。

@list=Email.find_by_sql(["SELECT * FROM Emails WHERE sent_id=?",params[:id]]) 

如何如果有多個參數適用於同一屬性修改相同的語句,例如說:

@list=Email.find_by_sql(["SELECT * FROM Emails WHERE (sent_id=? OR from_id=?)",params[:id],params[:id]]) 

在這裏,既sent_idfrom_id屬性接受相同的參數PARAMS [: id]

因此,而不是通過相同params [:id]兩次,是否有任何機制可以根據命令傳遞參數?

回答

20

您可以使用哈希來命名插入值,就像這樣:

@list = Email.find_by_sql(["SELECT * FROM Emails WHERE (sent_id = :id OR from_id = :id)", {:id => params[:id]}])