ユーザーモデルに追加した「admin」フィールドに基づいて管理者を認証するように設定したrails3アプリにrails_adminをインストールしました。Herokuの既存のユーザーに管理者をインストールさせる簡単な方法はありますか?現在共有DBを使用しているため、データベースでSQLを実行できません。ユーザーを管理者として設定する移行を作成する方法はありますか?ハックのようなもののようです...
4 に答える
使用しますheroku console
(またはheroku run rails console
、新しいCedarスタックを使用している場合)。ローカルと同じようrails console
に、この変更を簡単に行うことができるはずです。
ステップバイステップで分解:
heroku run rails c
User.find(55)
または、必要なユーザーに一致するその他のID。それが唯一のユーザーである場合User.first
は、十分です。
user = User.admin = true
boolean型のadmin列があると仮定します。
user.save
ctrl + c
コンソールを終了するには
特定のタイプのユーザーを作成する場合は、RailsSTIを使用してさまざまなユーザータイプを管理します。user.rbには、ユーザーの作成に関するすべての検証といくつかの権限がありますが、
normal_user.rb
class NormalUser < User
end
admin_user.rb
class AdminUser < User
end
移行は、usersテーブルに「type」を追加することです。次に、管理者にしたい既存のユーザーを見つけて、タイプを「AdminUser」に設定します。必要な管理者固有のアクションはすべて、使用できます
User.is_a?(AdminUser)
本番環境で管理者を作成するには、次の2つの方法があります。
seed.rb
管理者ユーザーをファイルに追加し、本番環境で実行します。herokuでシードファイルを実行するコマンド:heroku run rake db:seed
herokuクラウドで開い
heroku run rails console
ているコンソールを開くと、ユーザー/管理者を手動で作成できます。