Rails:使用.where方法重写find_all_by()

时间:2011-06-06 20:26:36

标签: ruby-on-rails ruby ruby-on-rails-3

我正在使用一个不使用find_all_by()方法对数组工作的gem,但使用.where();但是,我不知道如何以产生相同结果的方式编写它。

例如,我怎么能重写:

Post.find_all_by_poster(@user.id , :conditions => ['title IS NOT NULL OR name !=?', 'Bob' ])

我的尝试:

Post.where("poster = ? AND title !=? OR name !=?", @user.id, 'NULL', 'Bob')

有什么想法吗?我无法满足相同的条件。谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

您仍然需要使用IS NOT NULL而不是将NULL作为单独的参数传递:

Post.where("poster = ? and (title is not null or name != ?)", @user.id, 'Bob')