我有三个模型:User、FavCategory 和 Category。显然 FavCategory DB 表只不过是一个关联表。
我目前没有将此设置作为 HABTM 关联,因为我只需要引用当前用户最喜欢的类别。
# User.rb
has_many :fav_categories
# FavCategory.rb
belongs_to :user
belongs_to :category
现在我想让用户从复选框中进行选择并选择他们想要的这个类别作为他们的最爱,我目前有这个:
<div class="field">
<%= f.label 'Fav Categories' %>
<ul>
<% Category.all.each do |c| %>
<li>
<%= check_box_tag 'user[fav_category_ids][]', c.id, @user.fav_categories.pluck(:category_id).include?(c.id) %>
<%= c.title %>
</li>
<% end %>
</ul>
<% end %>
</div>
所以我的问题是:
- 我应该使用HABTM吗?还是没有必要?
- 如果不需要HABTM,我将如何命名复选框以便它们在保存时更新用户的收藏夹?
谢谢!