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

Bru*_*Dou 13 ruby-on-rails

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

我定义了根:

root :to => 'welcome#index'
Run Code Online (Sandbox Code Playgroud)

欢迎控制:

class WelcomeController < ApplicationController
  before_filter :authenticate_user!

  def index
  end

end
Run Code Online (Sandbox Code Playgroud)

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

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

Ale*_*pov 25

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

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

root :to => 'home#static_page'
Run Code Online (Sandbox Code Playgroud)


ica*_*ool 2

这个答案应该有效。这是发布在布拉德利链接的页面上的。

将其放入您的欢迎控制器中。

def index
  if authenticate_user?
    redirect_to :controller=>'dashboard', :action => 'index'
  else
    redirect_to '/public/example_html_file.html'
  end
end
Run Code Online (Sandbox Code Playgroud)