Rails简单表单复选框变量未定义

时间:2015-07-27 04:40:28

标签: ruby-on-rails twitter-bootstrap simple-form

我正在创建一个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不是

我该如何纠正?

2 个答案:

答案 0 :(得分:0)

我确实不知道你要做什么但是当选中复选框时应该有一些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 with non-model inputs

可能你可以尝试一下。

希望这有帮助。

答案 1 :(得分:0)

SELECT
    start_date,
    end_date,
    id
FROM
    employee_leave
WHERE
    (DATE(start_date) >= :start_date_range AND DATE(start_date) <= :end_date_range) 
OR 
    (DATE(end_date) >= :start_date_range AND DATE(end_date) <= :end_date_range);

与javascript / jquery

的编辑一起使用