我已经为我的应用推出了基于 Hartl 的自己的身份验证/授权系统。我想允许管理员让其他用户成为管理员,所以我在我的 user.rb 文件中做了这个:
attr_accessible :name, :email, :password, :password_confirmation, :order_id
attr_accessible :name, :email, :password, :password_confirmation, :order_id, :admin, :as => :administrator
并将其放入我的用户更新操作中:
def update
if current_user.admin?
if @user.update_attributes(params[:user], :as => :administrator)
这对我来说非常有用,但是必须进入控制台并输入变得很烦人
User.find(2).toggle!(:admin)
或者无论如何,每当我想在数据库重置后成为我的第一个管理员用户时,或者就此而言,必须使用控制台或个人编辑来创建其他管理员。如果我可以播种“:as => administrator”,我会很高兴,所以我在我的seed.rb文件中尝试了这个,但它不起作用(质量分配错误):
admin = User.create(
:name => "My Name",
:email => "my email",
:password => "password",
:password_confirmation => "password",
:admin => true,
:as => :administrator
)
知道是否有办法做到这一点?这会让我的生活轻松很多。