这可以在没有.or()的情况下工作,但在我添加它时会中断:
<% @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 :(得分: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)