Подтвердить что ты не робот

Как создать страницу регистрации в корневой странице в программе разработки?

Я запускаю Rails 4.0.0 с помощью Devise 3.1.0. Мои маршруты настроены следующим образом:

devise_for :users do
  root "devise/registrations#new"
end

resources :books

То, что я пытаюсь сделать, - сделать страницу "Подписываться" на странице приветствия для пользователей, если они не вошли в систему, но если они будут подписаны, они перейдут в Книжный индекс. Сейчас он просто дает мне стандартную версию Ruby on Rails: Welcome на борту, как будто Devise не существует. Как мне это сделать?


Ответ

https://github.com/plataformatec/devise/issues/2393

devise_for :users
devise_scope :user do
  authenticated :user do
    root :to => 'books#index', as: :authenticated_root
  end
  unauthenticated :user do
    root :to => 'devise/registrations#new', as: :unauthenticated_root
  end
end
4b9b3361

Ответ 1

devise_for :users
devise_scope :user do
  authenticated :user do
    root to: 'books#index'
  end
  unauthenticated :user do
    root to: 'devise/registrations#new', as: :unauthenticated_root
  end
end

Ответ 2

  • Получите корневой путь из блока devise_for и соответствующим образом отформатируйте его (как показано в файле маршрутов).
  • Создайте файл before_filter в вашем registrations_controller (возможно, вам нужно выполнить настройку по умолчанию, которую предлагает один разработчик), который проверяет, существует ли current_user и перенаправляет ли он путь к книгам, если он это делает.