使用each从视图中的数据库创建check_box,并放置值和id



我正在尝试为来自数据库的每个id显示一个复选框,这可能会对我有所帮助,按照我尝试过的代码,但在同一个check_box="id:1",check_box"id:2"中显示了多个复选框

我想以这种方式显示

<td> check_box="id1" value="false"</td> 
<td> check_box="id2" value="true"</td> 

如果有一个check_box,我也想要这个这个在rails控制台上的提交表单上检查后放入:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"b3kaOUAgyJHqho70958585SVSv7a1Eo3Yd2z54=", "@search_inactive"=>"30","true"}
Parameters: {"utf8"=>"✓", "authenticity_token"=>"b3kaOUAgyJHqho70958585Sassaffdaaz=", "@search_inactive"=>"29","false"}

我的视图:

<tr>
<td>
<%= link_to "Answer", "https://docs.google.com/forms/d/1WdpuW2pD-bqhlSmC77sWb3_nz56NAF-kHSh5--GkLnY/edit", :target => "_blank", :class => "btn_forms_gf" %>
<td align="center">
<%= form_for :app_changes, :url => {:controller => :user, :action => :show_search } do |f| %>
<% @search_inactive.each do |p| %>
<%= check_box_tag "@search_inactive", {}, p.id %>
<% end %>
<%= link_to_function('Disable', "$('form').submit()", :app_changes => @show_search, :class => "btn_save") %>
<% end %>
</td>
</tr>
<% end %>
<% end %>

我的控制器用所有搜索的非活动项和活动项呈现页面

def show_search
@show_search_active = Search.find_by_sql("select * from search where active is true")
@show_search_inactive = Search.find_by_sql("select * from search where active is false")
render('/users/show_search_users', :layout => true)
end

一种方法是为每个复选框输入设置hidden_field_tagcheckbox_tag

<%= form_for ...%>
<% @search_inactive.each do |p| %>
<%= hidden_field_tag "search_inactive[#{p.id}]", false %>
<%= check_box_tag "search_inactive[#{p.id}]", true %> 
<% end %>
<% @search_active.each do |p| %>
<%= hidden_field_tag "search_active[#{p.id}]", false %>
<%= check_box_tag "search_active[#{p.id}]", true, true %> # true here to have it checked by default 
<% end %>
<% end %>

现在,当您提交表单时,参数将看起来像:

{
"search_inactive"=>{"2"=>"false", "4"=>"false", "71"=>"false", "72"=>"false", "73"=>"false", "74"=>"false"},
"search_active"=>{"102"=>"true", "104"=>"true", "171"=>"true", "172"=>"true", "173"=>"true", "174"=>"true"}
}

当复选框未选中时,额外的hidden_field_tag允许表单提交false。但是,如果用户在UI中选中了复选框,则表单将提交true。这是Rails通常在生成表单时自动为您提供的技巧,但由于您是自己构建表单的,因此需要显式地包含隐藏标记。

最新更新