2015-07-20 98 views
1

此作品,未經。或者(),但休息時,我將其添加:ActiveRecord的未定義的方法或

<% @expired = Report.where('EXPIRED < ?', Date.new(2014,12,31)).or(Report.where(EXPIRED: nil)).where(:MAJOR => 1).where.not(:TRIBE => 1).where(:PERMIT_TYPE => 'GENERAL') %> 

,給我這個錯誤:

undefined method `or' for #<Report::ActiveRecord_Relation:0x953e020> 

而且,這樣做給了我一個語法錯誤:

Report.where('EXPIRED < ?', Date.new(2014,12,31) OR (EXPIRED: nil)) 

如何使這個OR工作?

的Rails 4.2.1

+0

是'。或()'活躍在Rails 3的?你從哪裏得到這個方法? – onebree

+0

@HunterStevens可能是'or'將隨Rails 5一起發佈的。它目前在主分支中可用。 –

回答

0

試試這個

Report.where("EXPIRED is null or EXPIRED < ?", Date.new(2014,12,31)) 

和更大的查詢做

Report.where("EXPIRED is null or EXPIRED < ?", Date.new(2014,12,31)).where(MAJOR: 1, PERMIT_TYPE: "GENERAL").where.not(TRIBE: 1) 
相關問題