更好的方法collection_check_boxes用法

时间:2013-10-17 23:58:10

标签: ruby-on-rails ruby

我有帖子/类别的典型关系(帖子有很多类别,所以类别有很多帖子)。我是新手使用Rails 4并尝试实现simple view,我可以检查哪些类别与帖子主题相匹配。

PostsController

    ...
    params[:post][:categories].each do |category_id|
      @post.categories << Category.find(category_id)
    end
    ...

_form.html.erb

      <div class="field">
        <%= f.label :categories %>
        <%= f.collection_check_boxes :categories, Simpleblog::Category.all, :id, :title %>
     </div>

当我正在编辑帖子A时,请检查类别1并保存,它有效!但是当我再次编辑它时,不会检查对应于类别1的check_box!我知道它已经保存在DB中了。所以当我再次检查类别时,它会复制记录。结论:我在帖子1中分配了两个类别A。两个问题?

1)我如何使view中的check_box持续“检查”已分配给帖子的类别?

2)如何防止类别和帖子之间的重复关系?

由于

1 个答案:

答案 0 :(得分:1)

这是关于具有多对多关联的复选框的精彩教程! RailsCast HASBTM Checkboxes

您的帖子和类别模型之间是否建立了关系?本教程将从头到尾引导您完成它。几天前我正在努力解决同样的问题。