我正在创建一个rails简单表单,它有两个字段:一个集合和一个复选框。集合中的值是根据是否选中复选框来确定的。
<%= f.input :id, :collection => (@s if show_all_shoppers || @rs), :label_method => :name, :value_method => :id, :label => "Shopper", :include_blank => true %>
<%= f.input :show_all_shoppers, :as => :boolean, :label => false, :input_html => { :'data-label' => 'Display all shoppers'} %>
但是,当我尝试这个时,我一直得到undefined local variable or method show_all_shoppers
。请注意,:id
是我的模型实例中的字段名,但show_all_shoppers
不是
我该如何更正?
我不知道你想做什么,但当选中复选框时,应该会有一些javascript执行。在您的模型中创建一个attr_accessor
,如下所示:
attr_accessor :show_all_shoppers
然后在你的表格中,你可以做:
<%= f.input :show_all_shoppers, :as => :boolean, :label => false, :input_html => { :'data-label' => 'Display all shoppers'} %>
还有另一种解决方案,但我从未尝试过,所以不知道它是否有效:
<%= f.input :show_all_shoppers do %>
<%= check_box_tag 'show_all_shoppers', 'Display all shoppers', false %>
<% end %>
来源:带有非模型输入的Rails Simpleform
也许你可以试一试。
希望这能有所帮助。
<%= check_box_tag 'show_shoppers', 'show_all_shoppers', false %><small> Show All Shoppers</small>
与对javascript/jquery 的编辑一起工作