1

我同时使用 Rails 3 和 Datamapper,一切都很好,除非我设置了多对多关系。

如果我试图通过 Rails 控制器更新用户,我运行:

@user.update(params[:user])

在 params 中是一个 role_ids 集合。但是,当我通过它时,我收到以下消息:

The attribute 'role_ids' is not accessible in User

模型用户端的关系如下:

has n, :roles, :through => Resource

我看不出这里有什么问题 - 任何人都可以帮忙吗?

4

1 回答 1

0

这意味着您的用户模型中没有“role_ids”字段 - 这是真的,因为您的用户模型中很可能有“resource_id”。如果您有一个表单可以在用户创建/修改中接受角色创建/修改,则必须在 User 中声明,如下所示:

class User
  accepts_nested_attributes_for :roles
  attr_accessible :role_attributes
于 2012-06-07T00:43:04.470 回答