2012-06-11 26 views
9

guys ngày tốt!find_by_sql với định dạng mảng trong Rails 3

Tôi đang sử dụng find_by_sql() trong đường ray 3 để tìm nạp bản ghi như sau.

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

Làm thế nào để sửa đổi báo cáo kết quả tương tự nếu nhiều tham số được áp dụng cho cùng một thuộc tính, nói ví dụ:

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

Ở đây, cả hai sent_idfrom_id thuộc tính nhận được cùng một thông số params [: id]

Vì vậy, thay vì chuyển cùng một thông số params [: id] hai lần, có cơ chế nào để truyền tham số dựa trên thứ tự không?

Trả lời

20

Bạn có thể sử dụng một băm để đặt tên cho các giá trị nội suy, như thế này:

@list = Email.find_by_sql(["SELECT * FROM Emails WHERE (sent_id = :id OR from_id = :id)", {:id => params[:id]}]) 
Các vấn đề liên quan