Ruby on rails激活记录条件

问题描述:

有没有办法指定和OR条件?Ruby on rails激活记录条件

例如:

Message.find(1, :condition => {"profile_id = ? OR sender_id = ?", 2, 2}) 

最后,我要检查用户是否发送或接收的消息,但如果我做他们分开我的时候没有发现的一个记录抛出一个异常案件。

+1

更换'{}'和'[ ]'和':condition'用':conditions',我想你已经得到了你的OR。不过,我怀疑这只是一个错字。我错过了这个问题吗? – Matchu 2010-10-15 00:26:25

+0

真棒,工作正常。这不是一个错字我虽然是一个选项哈希?谢谢! – Brian 2010-10-15 00:32:13

+0

选项哈希也可用,但默认为“AND”操作。使用:condition => {:key_one => val_one,:key_two => val_two}将仅查找与这两个键匹配的元素。 – 2010-10-15 00:36:01

你很近!将{} s更改为[] s并且

Message.find(:first, :condition => ["profile_id = ? OR sender_id = ?", profile_id, sender_id]) 

应该为您做。

(顺便说一下,不要忘了,它也总是可以只使用的find_by_sql的情况下,有没有一个“足够聪明的”助手可用电流...)