0

我只使用omniauth-oauth2 进行身份验证(无设计)。我想为已登录和未登录的用户定义不同的根,以包括安全仪表板。我的应用程序控制器中有一个 current_user 方法,但我似乎无法在我的路由中访问它。有人对我如何最好地做到这一点有任何建议吗?

应用控制器:

helper_method :current_user

private

    def current_user
        @current_user ||= User.find(session[:user_id]) if session[:user_id]
    end

这不起作用:

Blog::Application.routes.draw do


 if :current_user
   root :to => "home#show"
 else
   root :to => "home#index"
 end

end
4

1 回答 1

1

routes.rb文件中,只需根据条件指定路由的约束

root :to => 'home#show', :constraints => lambda{|req| !req.session[:user_id].blank?}
root :to => 'home#index'

希望这会在您将user_id存储在会话中时有用,这将起作用

于 2013-03-25T07:32:32.363 回答