Rails:带有Select和2 .where子句的表单

时间:2016-01-12 12:32:17

标签: ruby-on-rails activerecord rails-activerecord

我想检查广告系列是否具有正确的品牌以及广告系列是否有效(valid_until是日期记录)。只有在两个条件均为真时,才会出现记录内的条目。

我试图让它发挥作用:

<% Brand.all.each do |b| %>
 <%= f.collection_select(:campaign, Campaign.where(brand: b.company).where(:valid_until < Date.now), :campaign, :campaign, {prompt:true}, {class: 'form-control'}) %>
<% end %>

我收到了这些错误:

  

语法错误,意外tCONSTANT,期待&#39;)&#39; ... ompany).where(:valid_until Date.now),:campaign,:campaign,...... ^

  

语法错误,意外&#39;)&#39;,期待keyword_end ... true},{class:&#39; form-control&#39;})); @ output_buffer.safe_append .... .. ^

有什么想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

应该是:

Campaign.where(brand: b.company).where('valid_until < ?', Time.now)

或者:

Campaign.where('brand = ? and valid_until < ?', b.company, Time.now)