我正在尝试建立如下标准关系:
class Category < ActiveRecord::Base
has_many :post_categories
has_many :posts, :through => :post_categories
accepts_nested_attributes_for :post_categories
end
class Post < ActiveRecord::Base
has_many :post_categories
has_many :categories, :through => :post_categories
accepts_nested_attributes_for :post_categories
attr_accessor :category_ids
end
class PostCategory < ActiveRecord::Base
belongs_to post
belongs_to category
end
我正在使用ActiveAdmin并需要设置复选框来描述关系。 我已经尝试了许多不同的方法来保存复选框。这是我的admin post.rb文件:
ActiveAdmin.register Post do
permit_params :content, category_ids: []
form do |f|
f.inputs # Include the default inputs
f.inputs "Categories" do
f.input :categories, as: :check_boxes, collection: Category.all
end
f.actions # Include the default actions
end
end
我尝试了不同的许可证参数,例如
permit_params :content, :categories
permit_params :content, post_categories_attributes: [:id, :post_id, :category_id]
permit_params :content, category_ids: [:id]
数据库的设置如rails指南中所示,除了从activeadmin保存之外,这种关系似乎在其他地方有效。我甚至尝试使用param.permit!
来允许所有参数,但仍然没有运气。
我发现许多看似相同问题的帖子,但很多人给出了不同的答案,似乎没有任何效果。
有什么问题?
答案 0 :(得分:0)
稍晚但是这个问题首先用Google搜索,所以我认为它对其他“googlers”有帮助
#models/post.rb
accepts_nested_attributes_for :categories#, allow_destroy: true
#AA Post conf file
permit_params :content, category_ids: []