私はレールの初心者で、ユーザーとロール用の単純な habtm をセットアップしようとしています。シード ファイルでユーザーにロールを割り当てようとしていますが、常に次のエラーが発生します。
保護された属性をまとめて割り当てることはできません: 役割
次のように、IDなしでリンクテーブルを作成しました。
create_table :roles_users, :id => false do |t|
t.references :role, :user
end
そして、私のユーザーとロールモデルは次のようになります。
class User < ActiveRecord::Base
has_and_belongs_to_many :roles
devise :database_authenticatable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me, :roles_attributes
accepts_nested_attributes_for :roles, :reject_if => :all_blank, :allow_destroy => true
end
class Role < ActiveRecord::Base
has_and_belongs_to_many :users
attr_accessible :name
end
次のようなシード ファイルでユーザーにロールを割り当てようとすると、次のようになります。
#Create a role
role = Role.find_or_create_by_name 'admin'
#Create test user
user = User.find_or_create_by_email 'niels@work.be'
user.update_attributes! password: 'testme', password_confirmation: 'testme', roles: role
rake コマンドは常に停止し、保護された属性を一括割り当てできないと不平を言いますか?
私が間違っていることの手がかりを見つけて、正しい方向に導いてくれる人はいますか? よろしくお願いします!