【问题标题】:Updating relationships through Rails with Datamapper ORM使用 Datamapper ORM 通过 Rails 更新关系
【发布时间】:2012-06-06 12:45:12
【问题描述】:

我同时使用 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

我看不出这里有什么问题 - 谁能帮忙?

【问题讨论】:

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


    【解决方案1】:

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

    class User
      accepts_nested_attributes_for :roles
      attr_accessible :role_attributes
    

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      相关资源
      最近更新 更多