我有Users和Interests,它们通过interests_users表与has_and_belongs_to_many关系相关联。我想做的是让用户通过复选框创建帐户时选择5个兴趣,但我现在不知道如何在同一表单中提交相同的参数5次,我目前正在提交复选框,但兴趣不是布尔值。现在的代码是这样的:
<div class = "field">
<%= f.label :interests %><br>
<% all_interests = Interest.all.map{ |f| [f.name, f.id] } %>
<% all_interests.each do |interest| %>
<p> <%= interest[0] %> <%= f.check_box :interests %> <p>
<% end %>
</div>
在视图中使用流动
<% for interest in Interest.all %>
<%= check_box_tag "user[interest_ids][]", interest.id, @user.interests.include?(interest) %>
<%= interest.name %>
<% end %>
在控制器中接受如下参数
params.require(:user).permit( { interest_ids:[] })
您应该试试下面的代码:
<div class = "field">
<%= f.label :interests %><br>
<% Interest.all.each do |interest| %>
<p> <%= interest.name %> <%= f.check_box :interests, { :multiple => true }, interest.id, nil %> </p>
<% end %>
</div>