2012-06-11 39 views
9

dizi biçimi ile find_by_sql iyi günler çocuklar!Raylar 3

Aşağıdaki gibi kayıtları almak için find_by_sql() raylarında 3 kullanıyorum.

birden parametresinin aynı özellik için geçerliyse aynı ifadeyi değiştirmek için nasıl
@list=Email.find_by_sql(["SELECT * FROM Emails WHERE sent_id=?",params[:id]]) 

örneğin ki: İşte

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

, hem sent_id ve aynı parametreyi params [aldığında özelliklerini from_id: id

Yani, aynı parametrelerini geçirme yerine [: id] kez, siparişe göre parametre geçmek için herhangi bir mekanizma var mı?

cevap

20

Bunu, interpolated değerleri isim karma kullanabilirsiniz:

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