Ruby on rails rails搜索复选框错误

Ruby on rails rails搜索复选框错误,ruby-on-rails,ransack,Ruby On Rails,Ransack,我有这个看法 - f.checks :membership_cancelled_true , [["canceled membership", true] ], :class => 'checkboxy' do |check| = check.box = check.label 我使用MetaSearch gem,它工作得很好,但现在我将rails升级到4.0,我必须使用Ransack gem(MetaSearch的新版本),这个复选框不起作用 这

我有这个看法

- f.checks :membership_cancelled_true , [["canceled membership", true] ], :class => 'checkboxy' do |check|
          = check.box
          = check.label
我使用MetaSearch gem,它工作得很好,但现在我将rails升级到4.0,我必须使用Ransack gem(MetaSearch的新版本),这个复选框不起作用

这就是错误:

undefined method `checks' for #<Ransack::Helpers::FormBuilder:0xb42f015c>
未定义的方法“检查”#

Ransack::Helpers::FormBuilder
继承自
::ActionView::Helpers::FormBuilder
。它不像
MetaSearch::Helpers::FormBuilder
那样提供
checks
方法。元搜索的
检查
方法构建了一组
复选框标记
标签标记

在Ransack中,对于一个复选框条件,如您在问题中包含的条件,我们可以执行如下操作:

<%= f.check_box :membership_cancelled_true %>
<%= f.label :membership_cancelled_true %>
<% predicate = "my_attribute_in" %>
<% { "Value One" => "1", "Value Two" => "2", "Value Three" => "3"}.each do |label, value| %>
  <%= check_box_tag "q[#{predicate}][]", value, params.try(:[],:q).try(:[],predicate).try(:include?, value), id: "q_#{predicate}_#{value}" %>
  <%= label_tag "q_#{predicate}_#{value}", label %><br />
<% end %>

对于多复选框条件,如果我们希望包含属性与一组选中值中的任何一个匹配的所有记录,我们可以执行以下操作:

<%= f.check_box :membership_cancelled_true %>
<%= f.label :membership_cancelled_true %>
<% predicate = "my_attribute_in" %>
<% { "Value One" => "1", "Value Two" => "2", "Value Three" => "3"}.each do |label, value| %>
  <%= check_box_tag "q[#{predicate}][]", value, params.try(:[],:q).try(:[],predicate).try(:include?, value), id: "q_#{predicate}_#{value}" %>
  <%= label_tag "q_#{predicate}_#{value}", label %><br />
<% end %>

“1”,“值2”=>“2”,“值3”=>“3”}。每个do |标签,值|%>


Ransack::Helpers::FormBuilder
继承自
::ActionView::Helpers::FormBuilder
。它不像
MetaSearch::Helpers::FormBuilder
那样提供
checks
方法。元搜索的
检查
方法构建了一组
复选框标记
标签标记

在Ransack中,对于一个复选框条件,如您在问题中包含的条件,我们可以执行如下操作:

<%= f.check_box :membership_cancelled_true %>
<%= f.label :membership_cancelled_true %>
<% predicate = "my_attribute_in" %>
<% { "Value One" => "1", "Value Two" => "2", "Value Three" => "3"}.each do |label, value| %>
  <%= check_box_tag "q[#{predicate}][]", value, params.try(:[],:q).try(:[],predicate).try(:include?, value), id: "q_#{predicate}_#{value}" %>
  <%= label_tag "q_#{predicate}_#{value}", label %><br />
<% end %>

对于多复选框条件,如果我们希望包含属性与一组选中值中的任何一个匹配的所有记录,我们可以执行以下操作:

<%= f.check_box :membership_cancelled_true %>
<%= f.label :membership_cancelled_true %>
<% predicate = "my_attribute_in" %>
<% { "Value One" => "1", "Value Two" => "2", "Value Three" => "3"}.each do |label, value| %>
  <%= check_box_tag "q[#{predicate}][]", value, params.try(:[],:q).try(:[],predicate).try(:include?, value), id: "q_#{predicate}_#{value}" %>
  <%= label_tag "q_#{predicate}_#{value}", label %><br />
<% end %>

“1”,“值2”=>“2”,“值3”=>“3”}。每个do |标签,值|%>


它不能识别支票。。这是正确的语法吗?检查文档。复选框标签?它不能识别支票。。这是正确的语法吗?检查文档。是否选中复选框标记?