使用Datamapper ORM通过Rails更新关系



我一起使用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

最新更新