0

私はこのビューを持っています

- f.checks :membership_cancelled_true , [["canceled membership", true] ], :class => 'checkboxy' do |check|
          = check.box
          = check.label

私は MetaSearch gem を使用していますが、うまく動作しますが、レールを 4.0 にアップグレードしたため、Ransack gem (MetaSearch の新しいバージョン) を使用する必要があり、このチェック ボックスが機能しません。

これはエラーです:

undefined method `checks' for #<Ransack::Helpers::FormBuilder:0xb42f015c>
4

1 に答える 1

3

Ransack::Helpers::FormBuilderから継承し::ActionView::Helpers::FormBuilderます。checksしたような方法は提供しませんMetaSearch::Helpers::FormBuilder。MetaSearch のchecksメソッドは、check_box_tagとのlabel_tag値のセットを構築しました。

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 %>
于 2013-12-06T16:31:25.690 に答える