アプリ用に 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
)
これを行う方法があるかどうか、何か考えはありますか? それは私の人生をずっと楽にするでしょう。