登录用户的不同页面,未登录root用户

时间:2012-02-18 07:39:23

标签: ruby-on-rails

我想在Rails中为用户显示不同的根页。

我定义了根:

root :to => 'welcome#index'

欢迎控制:

class WelcomeController < ApplicationController
  before_filter :authenticate_user!

  def index
  end

end

目前可以登录用户,但未登录的用户重定向到/ users / sign_in

我想显示静态根页面而不是重定向。

3 个答案:

答案 0 :(得分:25)

Puneet Goyal建议的答案在Rails 4中不起作用。见this。解决方案是使用两个路由之一的别名,如下所示:

authenticated do
  root :to => 'welcome#index', as: :authenticated
end

root :to => 'home#static_page'

答案 1 :(得分:2)

这个答案应该有效。这张贴在Bradley链接的页面上。

将它放在欢迎控制器中。

def index
  if authenticate_user?
    redirect_to :controller=>'dashboard', :action => 'index'
  else
    redirect_to '/public/example_html_file.html'
  end
end

答案 2 :(得分:2)

routes.rb

authenticated do
  root :to => 'welcome#index'
end

root :to => 'home#static_page'

这将确保所有经过身份验证的用户root_urlwelcome#index

供参考:https://github.com/plataformatec/devise/pull/1147