0

アプリでユーザーを認証するためにdeviseを使用しています。問題は、デバイスヘルパーが私のアプリに存在しないことです。例えば。ファイルapp/controllers/admin/dashboard.phpには、次のコードスニペットがあります。

<% if user_signed_in ? %>
   do something
<% end %>

私は得る

undefined method `user_signed_in?' 

rake routesコマンドの出力は次のとおりです

new_admin_session           GET    /admin/sign_in(.:format)         devise/sessions#new
admin_session               POST   /admin/sign_in(.:format)         devise/sessions#create
destroy_admin_session       DELETE /admin/sign_out(.:format)        devise/sessions#destroy
admin_password              POST   /admin/password(.:format)        devise/passwords#create
new_admin_password          GET    /admin/password/new(.:format)    devise/passwords#new
edit_admin_password         GET    /admin/password/edit(.:format)   devise/passwords#edit
                            PUT    /admin/password(.:format)        devise/passwords#update
cancel_admin_registration   GET    /admin/cancel(.:format)          devise/registrations#cancel
admin_registration          POST   /admin(.:format)                 devise/registrations#create
new_admin_registration      GET    /admin/sign_up(.:format)         devise/registrations#new
edit_admin_registration     GET    /admin/edit(.:format)            devise/registrations#edit
                            PUT    /admin(.:format)                 devise/registrations#update
                            DELETE /admin(.:format)                 devise/registrations#destroy
login                              /admin/login(.:format)           devise/sessions#new
login                              /admin(.:format)                 devise/sessions#new
admin_dashboard_index       GET    /admin/dashboard/index(.:format) admin/dashboard#index

これがroutes.rbの内容です

devise_for :admin

  devise_scope :admin do
    match 'admin/login' => 'devise/sessions#new', :as => :login
    match 'admin' => 'devise/sessions#new', :as => :login
    get "admin/dashboard/index"
  end

  namespace :admin do
    resources :images
  end

そして管理者モデル

class Admin < ActiveRecord::Base

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  attr_accessible :email, :password, :password_confirmation, :remember_me 

end

ここで何が問題になっていますか?登録またはログインはできますが、ヘルパーメソッドを使用できません。

4

2 に答える 2

1

試す

admin_logged_in?

デバイスは、モデルが呼び出されたものは何でも使用します

于 2012-07-13T11:24:08.683 に答える
0

あなたのモデルはAdminあなたが電話しなければならないので

admin_signed_in?

そしてまた

before_filter :authenticate_admin!

あなたのコントローラーで。

https://github.com/plataformatec/devise/#configuring-multiple-modelsを参照してください

于 2012-07-13T11:24:22.320 に答える