Rails复选框值始终为零

时间:2011-12-05 19:29:25

标签: ruby-on-rails-3

我对Rails相当新,并且无法获得复选框的值。我花了很多时间查看线程和API文档,但似乎除了nil之外似乎没有任何其他值。

复选框未绑定到任何模型的属性,但是应该是一个布尔值,它将过滤掉/忽略的元素

这是复选框声明:

<%= form_tag model_path, :method => 'get', :id => "data_search" do %>
    <%= hidden_field_tag :direction, params[:direction] %>
    <%= hidden_field_tag :sort, params[:sort] %>
    <p>
       <%= text_field_tag :search, params[:search] %>
       <%= submit_tag "Search", :name => nil %>
       <%= hidden_field_tag "include_ignored", 0 %> //tried the hidden field trick also, to
                                                    //no avail
       <%= check_box_tag "include_ignored", 0 %>
       Include ignored items
    </p>
<% end %>

请注意,我已尝试在form_for外部声明复选框标记,但无效

后来我在模型搜索中使用它:

Model.where(:is_ignored => params[:include_ignored])

控制台中的查询输出与调试器的故事相同; params [:include_ignored]为空。

我能错过什么?提前谢谢。

1 个答案:

答案 0 :(得分:2)

好的,如果你在点击提交时说 然后复选框状态不传递(始终为0) 那是因为你对标签的最终批评。

应该是

<%= check_box_tag "include_ignored" %>

不要把它放在后面。