Доступ к помощнику разработчика 'user_signed_in?' - PullRequest
1 голос
/ 28 марта 2011

Я не могу использовать 'user_signed_in?' в моем контроллере приложений и задавался вопросом, знает ли кто-нибудь, как это исправить.

На мой взгляд, все работает нормально, но в контроллере приложения я получаю

NoMethodError in PostsController#index
undefined method `user_signed_in?' for ApplicationController:Class

У многих людей была эта проблема на рейле 3.0.3, но я использую рейлы 2.3.8. Предлагаемое исправление было использовать devise_for: user в вашем rout.rb, но это привело к

Internal Server Error
undefined method `devise_for' for main:Object 

Помощь будет принята с благодарностью

Спасибо

1 Ответ

1 голос
/ 28 марта 2011

Я использую devise с 2.38. Как насчет того, чтобы

==> application_controller.rb <==
protected
 def authorize
   unless User.find_by_id(session[:user_id])
    session[:original_uri] = request.request_uri
    flash[:notice] = "Please Log In!"
    redirect_to :controller => 'admin', :action => 'login'
   end
 end
end

затем на каждом контроллере, например food_items:

 class FoodItemsController < ApplicationController
 before_filter :authorize, :except => [:index, :show] # For all methods except these...

 # GET /food_items

немного другой подход.Могу помочь.

...