Rails多个复选框--check_box_tag
一、简单粗暴的解决方法
view
<% @roles.each do |role| %> <%= check_box_tag 'roles[]', role.id%> <%= label_tag role.name %> <% end %>
生成HTML页面效果
<input type="checkbox" value="1" name="roles[]" id="roles_"> <label for="SuperAdmin">Superadmin</label> <input type="checkbox" value="2" name="roles[]" id="roles_"> <label for="Teacher">Teacher</label> <input type="checkbox" value="3" name="roles[]" id="roles_"> <label for="Student">Student</label>
controller获得信息
"roles"=>["2", "3"] #params[:roles]
二、规范方法
上述代码生成的标签id相同,均为roles_。如果想要id的最后一段为该标签的value则view代码如下:
<%= form_for @task do |f| %> <%= f.check_box :soft_type, {"multiple" => true}, "1", false %> <%= f.check_box :soft_type, {"multiple" => true}, "2", false %> <% end %>
HTML效果如下:
<input type="checkbox" value="1" name="task[soft_type][]" id="task_soft_type_1"> <input type="checkbox" value="2" name="task[soft_type][]" id="task_soft_type_2">
controller获得信息同上