Sql 查询以查找";主动的;Rails中的广告

Sql 查询以查找";主动的;Rails中的广告,sql,ruby-on-rails,ruby-on-rails-3.2,Sql,Ruby On Rails,Ruby On Rails 3.2,我正在构建一个具有以下模式的广告管理器: <Campaign id: nil, target_id: nil, date_view_based: nil, start_date: nil, end_date: nil, max_views: nil, cur_views: nil, link_to: nil, alt_data: nil, title_attr: nil, created_at: nil, updated_at: nil, user_id: nil, image_file_

我正在构建一个具有以下模式的广告管理器:

<Campaign id: nil, target_id: nil, date_view_based: nil, start_date: nil, end_date: nil, max_views: nil, cur_views: nil, link_to: nil, alt_data: nil, title_attr: nil, created_at: nil, updated_at: nil, user_id: nil, image_file_name: nil, image_content_type: nil, image_file_size: nil, image_updated_at: nil, link_clicked: nil, name: nil>
然后输出这样的数组

Campaign.where('date_view_based =? AND end_date >= ? AND start_date <= ?', "Date", Date.today.strftime('%m/%d/%Y'), Date.today.strftime('%m/%d/%Y')).concat(Campaign.where('date_view_based = ? AND max_views >= ?, "View", :cur_views))
这个怎么样

class Campaign < ActiveRecord::Base

  # ...

  def self.current
    date_view_based_enum = %W(Date View)
    date = Date.today.strftime('%m/%d/%Y')
    where("((start_date <= ? AND end_date >= ?) OR (max_views >= cur_views)) AND date_view_based IN (?)", date, date, date_view_based_enum)
  end
end
class活动=当前视图))和基于(?)的日期视图,日期,日期,基于枚举的日期视图)
结束
结束

由于where语句使用的是SQL而不是Ruby,因此请确保使用single=而不是double==。感谢您捕捉到我的输入错误。是的,它只是一个=有没有一种方法可以在Ruby中查询这个问题,从而使它变得更简单?太好了!正是我要找的!
#<Campaign id: nil, target_id: nil, date_view_based: nil, start_date: nil, end_date: nil, max_views: nil, cur_views: nil, created_at: nil, updated_at: nil, name: nil>
class Campaign < ActiveRecord::Base

  # ...

  def self.current
    date_view_based_enum = %W(Date View)
    date = Date.today.strftime('%m/%d/%Y')
    where("((start_date <= ? AND end_date >= ?) OR (max_views >= cur_views)) AND date_view_based IN (?)", date, date, date_view_based_enum)
  end
end