私はRails、Active Addmin、cancancanで作業していました。 1つのことを除いてすべてが正常に動作しています。最近、の管理者タイプのユーザーとのクライアントの名前空間を別々に追加しました。現在、私は何とか認証されたユーザーかどうかをチェックされる条件を追加する必要がありますRails、Active Admin、Devise、routes
devise_scope :user do
authenticated :user do
root :to => 'admin/dashboard#index', as: :authenticated_root
end
unauthenticated :user do
root :to => 'pages#index', as: :unauthenticated_root
end
end
:
は、その変更前に、私は、このような方法で、同じアクティブな管理者ダッシュボード(routes.rbを)にすべての認証済みユーザーをリダイレクト役割がある管理またはクライアントがあります。
私の考えがそのようSTHを作ることだった。
devise_scope :user do
authenticated :user do
if current_user.role?(:Architect) || current_user.role?(:Admin)
root :to => 'admin/dashboard#index', as: :authenticated_root
else
root :to => 'clients/dashboard#index', as: :authenticated_client
end
end
unauthenticated :user do
root :to => 'pages#index', as: :unauthenticated_root
end
end
しかし、私はエラーが取得しています:未定義のローカル変数やメソッド `CURRENT_USER」 は私がルート内のユーザーの役割を確認することができますどのように誰もが知っていますか?それを行うための良い方法はありますか?
sessions_controllerカスタムを指定する必要がありアクションフィルタの前にアプリケーションコントローラ。以前はroutes.rbのcurrent_userにアクセスしていません。 –
このアプローチはどうですか? http://stackoverflow.com/questions/31681957/rails-routes-based-on-current-user – exmaxx