如何使用简单的表单创建has_many通过记录?一世

时间:2013-12-10 13:48:08

标签: ruby-on-rails simple-form

我的分类型号:

class Category < ActiveRecord::Base
    has_many :item_categoryships
    has_many :items, :through => :item_categoryships
end

我的物品型号:

class Item < ActiveRecord::Base
    has_many :item_categoryships
    has_many :categories, class_name: 'ItemCategoryship', foreign_key: 'category_id', :through => :item_categoryships

end

我的ItemCategoryship模型:

class ItemCategoryship < ActiveRecord::Base
    belongs_to :item
    belongs_to :category
end

在views / items / edit.html.erb中,我编写了这样的简单表单代码:

<%= simple_form_for(@item) do |f| %>
    <%= f.association :categories, collection: @categories, as: :check_boxes %>
    <%= f.submit "Submit", class: "btn btn-large btn-primary" %>
<% end %>

上面的@categories,我在控制器中写了这个:

@categories = current_user.categories

但是我遇到了问题,他们无法保存到数据库!!

我无法找出问题所在。请帮我.... 谢谢大家。

1 个答案:

答案 0 :(得分:0)

对于视图,这个SO答案应该有所帮助: https://stackoverflow.com/a/9917006/2463468

您可能首先需要确保您的关联有意义。也许您只需要has_many Itemsbelongs_to Category ItemCategoryship

您可以不用{{1}}。