2011-06-06 25 views
0

我使用了一個gem,它不會對find_all_by()方法的數組起作用,但可以處理.where();但是,我不知道如何以產生相同結果的方式編寫它。Rails:用.where方法重寫find_all_by()

例如,我怎麼可能重寫:

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') 

任何想法?我遇到了麻煩,滿足相同的條件。謝謝你的幫助!

+0

查找到[MetaWhere(http://metautonomo.us/projects/metawhere/)由具有脫身在您的代碼中編寫SQL片段。 – 2011-06-06 21:57:17

+0

欣賞這個建議,好像它可以真正幫助提高我的生產力!我會開始練習它 – ahuang7 2011-06-06 23:38:32

回答

3

你仍然需要使用IS NOT NULL代替NULL傳遞作爲一個單獨的參數:

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

奇妙的作品,謝謝! – ahuang7 2011-06-06 23:37:41