Ruby on rails 3 Rails复选框值始终为零

Ruby on rails 3 Rails复选框值始终为零,ruby-on-rails-3,Ruby On Rails 3,我是Rails的新手,很难获取复选框的值。我花了好几个小时浏览了线程和API文档,但似乎还是没有从中得到任何价值 该复选框未绑定到任何模型的属性,而是一个布尔值,将过滤掉/过滤掉被忽略的元素 以下是复选框声明: <%= form_tag model_path, :method => 'get', :id => "data_search" do %> <%= hidden_field_tag :direction, params[:direction] %&g

我是Rails的新手,很难获取复选框的值。我花了好几个小时浏览了线程和API文档,但似乎还是没有从中得到任何价值

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

以下是复选框声明:

<%= 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 %>
控制台中的查询输出讲述了与调试器相同的故事;参数[:include_ignored]为空


我会错过什么?提前感谢。

如果您在单击“提交”时这么说,请确认 则复选框状态不会传递(始终为0) 那是因为你在标签上的最后一句话

应该是

<%= check_box_tag "include_ignored" %>


不要将0放在后面。

这是它的一部分,但它似乎也没有默认值作为开头。当页面第一次加载时,我的目标是此复选框的值应为false,以便表只显示未忽略的项。我可以很容易地在控制器中处理这个问题,但是如果我以后不能得到一个新的值来覆盖它,那么这对我是没有帮助的……嗯,我在这里不明白。是,复选框标记将默认为未选中,因为这是呈现页面时html显示的内容。您是说,在以后的调用中,您希望从控制器控制复选框是否被单击?我尝试使用复选框的值作为布尔值,并使用该值确定控制器收集并呈现记录时是否显示“忽略的”记录。取消选中时,“忽略”记录将被过滤出视图。选中后,“忽略”记录将包含在视图中。好的,您知道控制器在视图显示正确之前运行吗?控制器创建并显示视图(通过控制器方法中的“渲染”命令或“隐式渲染”命令)。只有在提交之后,任何参数才会显示在控制器执行中?啊,好的,那么我需要在控制器中指定默认值。谢谢你的帮助!
<%= check_box_tag "include_ignored" %>