我对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]为空。
我能错过什么?提前谢谢。
答案 0 :(得分:2)
好的,如果你在点击提交时说 然后复选框状态不传递(始终为0) 那是因为你对标签的最终批评。
应该是
<%= check_box_tag "include_ignored" %>
不要把它放在后面。