我一起使用Rails 3和Datamapper,一切都很好,除非我设置了多对多的关系。
如果我尝试通过 Rails 控制器更新用户,我会运行:
@user.update(params[:user])
在参数中是一个role_ids集合。但是,当我通过此传递时,我收到以下消息:
The attribute 'role_ids' is not accessible in User
模型用户端的关系如下所示:
has n, :roles, :through => Resource
我看不出这里有什么问题 - 有人可以帮忙吗?
这意味着
您的用户模型中没有"role_ids"字段 - 这是正确的,因为您的用户模型中很可能有"resource_id"。如果您有在用户创建/修改中接受角色创建/修改的表单,则必须在 User 中声明如下:
class User
accepts_nested_attributes_for :roles
attr_accessible :role_attributes