初めましてヤミタケと申します。
RailsでDeviseを用いて管理画面を実装することについて質問させてください。
DeviseでAdminユーザーを作り,ログイン認証を用いて admin/
以下のアクセスを制御したい時、
僕は3通り程の実装方法を思いつくのですが、どのように組むのがきれいにわかりやすくできますでしょうか?
Railsのコーディング規約や思想など正しく理解できていないかもしれないので、そこも踏まえてアドバイス頂けると幸いです。
adminようのroutes.rb
# routes.rb # admin/以下はadminの認証を必要とする。 controllers/admin/配下にcontrollerを配置する。 devise_for :admins, # path: "admin", path_names: { sign_in: 'login', sign_out: 'logout' } , controllers: { sessions: "admin/sessions" } namespace :admin do root 'dashboard#index' resouces :items ##//// ## admin画面で管理していくもの ##//// end
共通でかけたい処理(とりあえず)
layout 'admin' before_action :authenticate_admin!
1 concernsに共通処理を書いて各コントローラーで読み込む。
などの記述をcontrollers/concerns/adminable.rb などに記述し、admin/以下のcontrollerでそれぞれincludeする。
2 継承元のcontrollerを作成して共通処理を記述する。
controllers/admin/Admin/base_controller.rb などを記述して共通処理をここに書く
class Admin::DashboardController < Admin::BaseController
3 cancan,rolifyなどのgemで権限管理を行う。
admin配下のCRUDの権限をadmin以外与えないようにする。
管理画面のあるシステムは何度か作ってきたことがありますが、作り方がしっくりこずに色々考えていました。
こういう考えがあるなどの気づきでもいいので教えていただけると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/07 06:31
2016/04/07 07:25