Другая страница для авторизованного пользователя и не авторизованного пользователя в корне - PullRequest
13 голосов
/ 18 февраля 2012

Я хочу показать другую корневую страницу для пользователей в Rails.

Я определил корень:

root :to => 'welcome#index'

И приветственный контроль:

class WelcomeController < ApplicationController
  before_filter :authenticate_user!

  def index
  end

end

В настоящее время это нормально для авторизованных пользователей, но не авторизованные пользователи перенаправляются в / users / sign_in

Я хочу показать статическую корневую страницу, а не перенаправлять.

Ответы [ 3 ]

25 голосов
/ 30 сентября 2013

Ответ, предложенный Puneet Goyal, не будет работать в Rails 4. См. this . Решение состоит в том, чтобы использовать псевдоним для одного из двух маршрутов, подобных этому:

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

root :to => 'home#static_page'
2 голосов
/ 26 апреля 2013

В вашем 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

2 голосов
/ 18 февраля 2012

Этот ответ должен работать. Это было размещено на странице Брэдли, на которую ссылались.

Поместите это в свой контроллер Welcome.

def index
  if authenticate_user?
    redirect_to :controller=>'dashboard', :action => 'index'
  else
    redirect_to '/public/example_html_file.html'
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...