9

美好的一天,伙计们!

我在 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]两次之外,是否有任何机制可以根据顺序传递参数?

4

1 回答 1

20

您可以使用哈希来命名插值,如下所示:

@list = Email.find_by_sql(["SELECT * FROM Emails WHERE (sent_id = :id OR from_id = :id)", {:id => params[:id]}])
于 2012-06-11T14:36:44.873 回答