Разная страница для входа в систему пользователя и не авторизована пользователем в корне
Я хочу показать другую корневую страницу для пользователей в Rails.
Я определил корень:
root :to => 'welcome#index'
И приветственный контроль:
class WelcomeController < ApplicationController
before_filter :authenticate_user!
def index
end
end
В настоящее время это нормально для зарегистрированных пользователей, но не зарегистрированные пользователи перенаправлены на /users/sign _in
Я хочу показать статическую корневую страницу и не перенаправлять.
Ответы
Ответ 1
Ответ, предложенный Puneet Goyal, не будет работать в Rails 4. См. this. Решение заключается в использовании псевдонима для одного из двух таких способов:
authenticated do
root :to => 'welcome#index', as: :authenticated
end
root :to => 'home#static_page'
Ответ 2
Этот ответ должен работать. Это было опубликовано на странице, связанной с Брэдли.
Поместите это в свой контроллер приветствия.
def index
if authenticate_user?
redirect_to :controller=>'dashboard', :action => 'index'
else
redirect_to '/public/example_html_file.html'
end
end
Ответ 3
В routes.rb
:
authenticated do
root :to => 'welcome#index'
end
root :to => 'home#static_page'
Это гарантирует, что root_url
для всех пользователей, прошедших проверку подлинности, welcome#index
Для справки: https://github.com/plataformatec/devise/pull/1147