我有一个非常简单的模型
class Lifestyle < ActiveRecord::Base
attr_accessible :name
has_and_belongs_to_many :profiles
end
有has_and_belongs_to_many
关系的Profile
class Profile < ActiveRecord::Base
attr_accessible ...
belongs_to :occupation
has_and_belongs_to_many :lifestyles
accepts_nested_attributes_for :lifestyles
end
我想使用 ActiveAdmin 来编辑 Profile 对象,但还要将 Lifestyles 分配给配置文件。它应该类似于处理belongs_to :occupation
,因为这是由 ActiveAdmin 自动整理到一个带有预填充可用职业的选项的保管箱中的。
我尝试使用has_many
表单构建器方法,但这只能让我显示一个表单以输入 Lifestyle 的名称,并且在提交时,它返回了一个错误。
f.object.lifestyles.build
f.has_many :lifestyles do |l|
l.input :name
end
我得到的错误:
Can't mass-assign protected attributes: lifestyles_attributes
对我来说完美的方法是构建几个复选框,一个用于数据库中的每个生活方式。选中表示生活方式与配置文件相关联,未选中表示删除关系。
我非常怀疑这是否可以使用 ActiveAdmin 而不必创建非常复杂的逻辑来处理这个问题。如果您能给出您的意见并建议我是否应该这样做或以不同的方式处理它,我将非常感激。