28542


Rails4.2系で開発を行っています。  
devise4.2系のGemを利用して認証機能を実装しました。

管理画面でdeviseを利用し、管理画面は専用サーバですので、「router.rb」を以下のように設定しております。  
（実際にはconstraintsも追加していますが、adminは特定サーバー以外では動かないようにしております）

[code]

        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
    
[/code]

**「admin」のネームスペース専用**
でのcontrollerやviewなどは追加し、問題なくなってきたかと思ったのですが、adminでdeviseを利用した際に、「user_signed_in?」などのメソッドが追加出来なくなっており困っております。

### 発生しているエラーメッセージ

[code]

    undefined method `user_signed_in?' for #
    
[/code]

### 試したこと

helperメソッドだけですので、「admin」のネームスペースで、「include
Devise::Controllers::Helpers」などすれば良いかと思いましたがうまく行きませんでした。  
<https://stackoverflow.com/questions/33419821/rails-cells-4-access-devise-
helpers>

そもそも上記例ですと、ViewModel使ってますが、そちらを使うのが適切かと使いどころが良くわからないところもあり

尚、adminのネームスペースのコントローラーのフォルダは以下の「base.rb」から継承させています。

[code]

        class Admin::Base < ActionController::Base
          protect_from_forgery with: :exception
          layout 'admin'
        end
    
[/code]

ただ、ヘルーパーを利用させる際に、コントローラーから何か操作をするのか、独自のヘルパーを利用してできるものなのかも不明な点ではあります。


CC BY-SA 3.0
2016-08-27T22:49:35.107
28531
2016-08-28T13:36:10.053
2020-06-17T08:14:45.997
-1
8919
question
ruby-on-rails
RailsのDeviseでの階層を変えてのHelperの呼び出しについて


この場合メソッド名にnamespaceが付加されて`admin_user_signed_in?`などになっていると思います


CC BY-SA 3.0
2016-08-28T13:36:10.053
28542
2016-08-28T13:36:10.053
5793
28531
answer