gemを使用せずにrails adminを作成しようとしています。Rails admin from scratch
私は管理者ログインと名前空間を持っています。私の質問は、たとえば、私は管理者と外部の管理者のユーザーモデルで区別することができます。
ユーザーモデルにアクションがあるコントローラがあると想像してください。私はadminのために同じ行動を使用したいと思います。しかし、私は別のコントローラを作成する必要がありますか、同じものを使うべきですか?
gemを使用せずにrails adminを作成しようとしています。Rails admin from scratch
私は管理者ログインと名前空間を持っています。私の質問は、たとえば、私は管理者と外部の管理者のユーザーモデルで区別することができます。
ユーザーモデルにアクションがあるコントローラがあると想像してください。私はadminのために同じ行動を使用したいと思います。しかし、私は別のコントローラを作成する必要がありますか、同じものを使うべきですか?
これにはさまざまな方法があります。あなたのプロジェクトとその複雑さによって異なります。
rails generate migration AddAdminToUsers admin:boolean
rails db:migrate
とあなたのDBのユーザーテーブルから管理者ユーザに真を割り当てるには:最も簡単な解決策は次のように、あなたのUserモデルで何かを管理列を追加することになります。たとえば、DBの最初のユーザー。レールコンソールで:
rails c
user = User.first # The console will load first user
user.admin = 1 # It will return true
user.save # It will save and assign true to admin user
次に、あなただけのapplication_controller.rbにシンプルなロジックを作成して、あなたのビューからメソッドis_admin?
を呼び出す必要があります。追加する役割のように、ユーザーテーブルから管理テーブルを差別、他の方法はたくさんあります
helper_method :current_user, :signed_in?, :is_admin?
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def signed_in?
!!current_user
end
def is_admin?
signed_in? ? current_user.admin : false
end
:(session[:user_id] = user.id
をすでにセッションハッシュにユーザーのIDを格納している場合)。管理者とユーザーの表を区別するように選択する場合は、管理者コントローラと管理者のモデルも必要です。私はあなたに開始のアイデアを贈ってほしい。