一、简单粗暴的解决方法
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"=>["", ""] #params[:roles]
二、规范方法
上述代码生成的标签id相同,均为roles_。如果想要id的最后一段为该标签的value则view代码如下:
<%= form_for @task do |f| %>
<%= f.check_box :soft_type, {"multiple" => true}, "", false %>
<%= f.check_box :soft_type, {"multiple" => true}, "", 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获得信息同上