使用Datamapper ORM通过Rails更新关系

时间:2012-06-06 12:45:12

标签: ruby-on-rails ruby-on-rails-3 datamapper

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

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

1 个答案:

答案 0 :(得分:0)

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

class User
  accepts_nested_attributes_for :roles
  attr_accessible :role_attributes