Xax*_*xum 4 indexing routes ruby-on-rails-3
首先,我尝试访问routes.rb文件中的session变量并放入一个简单的if语句.如果用户已登录,请转到#index,然后转到登陆#index.但是,routes.rb似乎无法访问会话变量.我设置了会话[:user_id],可以用它来验证登录状态.最好是在routes.rb中将已注销的页面设置为home,然后在用户登录时在该控制器中重定向,或者是否有更好的方法我不知道?
以下是我在控制器中为已注销的用户主页所做的操作.
def index
if User.find_by_id(session[:user_id])
redirect_to entry_url
end
end
Run Code Online (Sandbox Code Playgroud)
它工作正常,但不确定是否有任何问题或更好的方式.任何想法将不胜感激.
这些路由实际上可以访问会话变量.您可以设置约束以将登录用户路由到不同的根,如下所示:
# Logged in
constraints lambda { |req| !req.session[:user_id].blank? } do
root :to => "entry#index", :as => "dashboard"
end
# Not logged in
root :to => "landing#index"
Run Code Online (Sandbox Code Playgroud)
重要的是要注意两件事:首先,订单在这里很重要; 第二,除非你打算进一步使用约束(我总是这样做),否则可以将约束重构为单行路由.