ruby-on-rails-3 – Rails 3根据登录状态拥有两个不同主页的最佳
发布时间:2020-12-17 02:52:56 所属栏目:百科 来源:网络整理
导读:首先,我尝试访问routes.rb文件中的session变量并放入一个简单的if语句.如果用户已登录,请转到#index,然后转到登陆#index.但是,routes.rb似乎无法访问会话变量.我设置了会话[:user_id],可以用它来验证登录状态.最好是在routes.rb中将已注销的页面设置为home,
首先,我尝试访问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 它工作正常但不确定是否有任何问题或更好的方式.任何想法将不胜感激. 解决方法
这些路由实际上可以访问会话变量.您可以设置约束以将登录用户路由到不同的根,如下所示:
# 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" 重要的是要注意两件事:首先,订单在这里很重要;第二,除非你打算进一步使用约束(我总是这样做),否则可以将约束重构为单行路由. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 是否可以为字符串实现ExpressionTree.GreaterThan等,
- 如何创建用于OpenCV的Haar Cascade(xml)?
- postgresql复制参考
- 将flash嵌入你的程序中
- xml – XSL xsl:template match =“/”
- VB.Net程序设计:引用SQLite时,项目.NET Framework 2.0转.
- 在C#中将CD翻录为mp3 – 第三方组件或api在那里?
- 使用oracle dblink实现Hibernate
- iphone – shouldAutorotateToInterfaceOrientation不起作用
- C#实现win10 uwp 右击浮出窗在点击位置