私はこれらのモデルを持っています:
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 に変更しようとしましたが、問題は解決しませんでした。
このトピックに関する多くの質問を読みましたが、解決策はありませんでした。なぜかわからないのですか?しかし、私はかなり混乱しています。
前もって感謝します!