设置两个不同的根

时间:2016-02-22 21:31:30

标签: ruby-on-rails routing routes root sorcery

我正在使用Sorcery gem进行身份验证 - 有没有办法设置两个不同的根?我在routes.rb文件中想要这样的东西。

if user = logged in
   root to: 'users#home'
else
   root to: 'users#landing'
end

据我所知,在使用Devise gem时,似乎只有这样做的方法。有没有办法在不使用Devise的情况下使用两个不同的根?

1 个答案:

答案 0 :(得分:4)

路由器不知道user是什么,也不应该。这是一个控制器问题。您可能会做的是根据您的登录状态,有一个行为不同的终端。例如:

def home
  if (logged_in?)
    render(action: 'landing')
  end
end

当且仅当您已登录时,这将呈现landing,否则home