Rails简单窗体复选框变量未定义



我正在创建一个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 的编辑一起工作

最新更新