我有一个用户模型和角色模型,通过以下方式在 ActiveRecord 中连接:
has_many roles, through: :role_accounts
我想要一个“编辑用户”屏幕,其中包含一个复选框列表,每个角色一个。使用改革 gem (v2.1.0),这是表单对象的片段:
class UserForm < Reform::Form
property :name
collection :roles do
property :id
end
end
我的问题是,当提交编辑表单并检查 2 个角色时,params 哈希看起来像:{"user=>{"name"=>"Joe","roles"=>["2","5",""]}}
并且我收到此错误:
[Reform] Your :populator did not return a Reform::Form instance for `roles`.
如何通过 has_many 设置填充器?
另外,我想我首先需要删除所有用户的角色,然后添加选择的角色,这样他们就只剩下当前的角色集了。我怎样才能用改革宝石做到这一点?