在我的种子文件中,我尝试创建3个用户,1个admin
和2个default
个用户,但在创建之前,它始终将所有3个用户分配给default
角色。这里是我的代码:我的模型中有角色时,我的种子数据中没有分配管理员角色?
User.rb
class User < ActiveRecord::Base
attr_accessible :email, :password, :password_confirmation, :remember_me, :username
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
has_many :user_prices
has_many :products, :through => :user_prices
validates_presence_of :username, :email, :password, :password_confirmation
validates_format_of :username, :with => /\A[a-z0-9]{5,20}\z/i
validates_uniqueness_of :username, :email
before_create :setup_default_role_for_new_users
ROLES = %w[admin default]
private
def setup_default_role_for_new_users
if self.role.blank?
self.role = "default"
end
end
end
Seed.rb
puts 'Loading seed data now....'
user1 = User.create(:email => '[email protected]', :role => 'admin')
user2 = User.create(:email => '[email protected]')
user3 = User.create(:email => '[email protected]')
puts 'Users added'
我知道用户2和用户3将有default
作用,但user1的应该是admin
。这是如何完成的?
对不起,这是一个尝试一些事情的错字。是的,我再次尝试它,它仍然给所有用户的“默认”角色。 – LearningRoR 2011-12-17 22:06:08
那么,它一定是你没有将它添加到attr_accessible – clyfe 2011-12-18 11:58:21