Я развернул собственную систему аутентификации / авторизации на основе 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
)
Есть идеи, есть ли способ сделать это? Это сделало бы мою жизнь намного проще.