现在我的rails复选框只有在你点击复选框时才会切换;如果我单击与复选框关联的文本,则没有任何反应。如果单击“文本”,有没有办法让复选框切换?
<% @books.each do |b| %>
<%= check_box_tag "books[]", b.book %><%= b.book %><br />
<% end %>
答案 0 :(得分:10)
这很棘手,因为使用复选框集合需要[]。只需执行以下操作:
查看:
<% @books.each do |b| %> <%= check_box_tag "books[#{b.id}]", b.book %> <%= label_tag "books[#{b.id}]", b.book %> <br /> <% end %>
然后在控制器中通过它values
访问参数。否则它看起来像135 =&gt; Book1。使用values
获取Book1
PARAMS [:书籍] .values
或者更简单的方法就是简单地用check_box_tag
包裹<label>
,如下所示:
...
<label><%= check_box_tag "books[]", b.book %></label>
...
现在请注意,您甚至不需要担心#{b.id}
的唯一ID,因此控制器代码可以更改回
params[:books] # notice the .values is removed
答案 1 :(得分:4)