加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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"

重要的是要注意两件事:首先,订单在这里很重要;第二,除非你打算进一步使用约束(我总是这样做),否则可以将约束重构为单行路由.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读