0

私はこれらのモデルを持っています:

class User < ActiveRecord::Base
  attr_accessible :email, :name, :roles_user_attributes

  has_many :roles_users
  has_many :roles, through: :roles_users

  accepts_nested_attributes_for :roles_users, reject_if: :all_blank, allow_destroy: true
  accepts_nested_attributes_for :roles
end

class Role < ActiveRecord::Base
  attr_accessible :name, :user_id

  has_many :roles_users
  has_many :users, through: :roles_users
end

class RolesUser < ActiveRecord::Base
  attr_accessible :active, :role_id, :user_id, :role_attributes

  belongs_to :user
  belongs_to :role

  accepts_nested_attributes_for :role, reject_if: :all_blank
end

私が実行すると:

my_role = Role.find(1)
user = User.find(1)
user.roles_users.create(active: 1, role: my_role)

エラーが発生しましCan't mass-assign protected attributes: roleた。

user.roles_users.create(active: 1, role_id: 1)代わりに実行すると、動作します。

roles_user_attributes & role_attributes を roles_users_attributes & roles_attributes に変更しようとしましたが、問題は解決しませんでした。

このトピックに関する多くの質問を読みましたが、解決策はありませんでした。なぜかわからないのですか?しかし、私はかなり混乱しています。

前もって感謝します!

4

1 に答える 1