2

Rails アプリケーションを開発しており、devise という gem を使用してユーザーを管理しています。「管理者」という新しいユーザーを作成しましたが、アプリケーションのユーザーを「ユーザー」から「管理者」に変更する方法がわかりません。

ドキュメントには、「以下のコードを使用して、現在のユーザーに管理者ステータスを付与できます」と記載されています。

current_user.update_attribute :admin, true

しかし、このスニペットはどこに行くのでしょうか? これがドキュメントです。管理者ロールの作成情報はページの下部にあります。 https://github.com/plataformatec/devise/wiki/How-To%3A-Add-an-Admin-Role

4

2 に答える 2

2

あなたは解決策に非常に近いです!ドキュメントを読むのに勝るものはありません:-)

ウィキページに記載されているオプション 2 を使用すると、アプリケーションのユーザーは、admin 属性に基づいて「通常」または「管理者」として分類されます。ウィキページは、現在のユーザーに管理者ロールを付与するためのコードを提供し、このコードをどこで呼び出すかはあなた次第です。

ユーザーが管理者になる方法は、ユーザーがどのように実行したいかによって、各アプリケーションに固有であるため、当然のことです。

これを行う 1 つの方法は、コードを呼び出す GUI で「Grant Current User Admin Rights」アクションを実行することです。その場合、コードは「users_controller.rb」ファイルの「grant_current_user_admin_rights」メソッド内に入ります。もちろん、それに応じてビューとルートも変更する必要があります。

after_createユーザーモデルのコールバックからそのコードを呼び出して、すべてのユーザーが管理者になるようにすることができます:-)

これを行う別の方法は、コンソールまたはデータベース シードを使用して、特定のユーザーに管理フラグを設定することです。

私のプロジェクトのシードファイルの例:

admin_user = User.new( :email => USER_EMAIL, :password => PASSWORD_STRING, :name => USER_NAME )
admin_user.admin = true
admin_user.save!

お役に立てれば。

于 2012-10-09T13:46:31.580 に答える
2

4 年遅れましたが、どこに置くべきかを尋ねたときの OP の質問に対する真の答えは次のとおりです。

current_user.update_attribute:admin、真

ターミナル/コマンドプロンプトに移動することで解決できます。

入力してください

レールc

Rails ターミナルにアクセスします。

次に、ユーザーに移動します。おそらくあなたが最初なので、次のようになります。

ユーザー = User.find(1)

user.update_attribute(:admin, true)

ドキュメントのオプション 2 の前のすべての手順に従ったと仮定すると、これにより、ユーザーが真の管理者属性を持つように設定されます。

あなたは行くことによってこれを確認することができます

User.find(1) で、大きなテキスト ブロックの最後に「admin: true」と表示されます。

于 2016-05-07T17:47:51.577 に答える