RailsのDeviseでの階層を変えてのHelperの呼び出しについて
Rails4.2系で開発を行っています。
devise4.2系のGemを利用して認証機能を実装しました。
管理画面でdeviseを利用し、管理画面は専用サーバですので、「router.rb」を以下のように設定しております。
(実際にはconstraintsも追加していますが、adminは特定サーバー以外では動かないようにしております)
namespace :admin, path: nil do devise_for :users, controllers: { confirmations: 'admin/users/confirmations', passwords: 'admin/users/passwords', registrations: 'admin/users/registrations', sessions: 'admin/users/sessions', unlocks: 'admin/users/unlocks' } end
「admin」のネームスペース専用でのcontrollerやviewなどは追加し、問題なくなってきたかと思ったのですが、adminでdeviseを利用した際に、「user_signed_in?」などのメソッドが追加出来なくなっており困っております。
発生しているエラーメッセージ
undefined method `user_signed_in?' for #
試したこと
helperメソッドだけですので、「admin」のネームスペースで、「include Devise::Controllers::Helpers」などすれば良いかと思いましたがうまく行きませんでした。
https://stackoverflow.com/questions/33419821/rails-cells-4-access-devise-helpers
そもそも上記例ですと、ViewModel使ってますが、そちらを使うのが適切かと使いどころが良くわからないところもあり
尚、adminのネームスペースのコントローラーのフォルダは以下の「base.rb」から継承させています。
class Admin::Base < ActionController::Base protect_from_forgery with: :exception layout 'admin' end
ただ、ヘルーパーを利用させる際に、コントローラーから何か操作をするのか、独自のヘルパーを利用してできるものなのかも不明な点ではあります。