【发布时间】:2013-07-01 20:47:01
【问题描述】:
我正在构建一个具有以下架构的广告管理器:
<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>
我需要的是一种方法来创建一个像这样运行的方法......
Campaigns.current?
并输出一个类似这样的数组
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))
但是,Campaign.where('max_views >= ?, :cur_views) 不起作用,那么如何比较这两个属性呢?当然,必须有更好的方法来做到这一点,任何建议都会受到赞赏。
对不起,我以为我已经包含了结构,但我想我没有:Campaign.new 返回:
#<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>
【问题讨论】:
-
由于您的 where 语句使用的是 SQL 而不是 Ruby,因此请确保使用单 = 而不是双 ==。
-
感谢您发现我的错字。是的,它只是一个 = 有没有办法在 Ruby 中查询它会更容易?
标签: sql ruby-on-rails ruby-on-rails-3.2