Настройка пользовательских маршрутов Devise частично описана на Devise Github Wiki .
Однако удаление отображения (в данном случае «пользователь») не совсем понятно.Описанное :path => ''
также разбивает вещи.
Итак, если вы хотите: /sign_in
вместо /users/sign_in
, /register
вместо /users/register
и т. Д.
Что вы можетеdo:
Создание пользовательских контроллеров для сеансов и регистраций.В этих контроллерах установлено:
class Users::RegistrationsController < Devise::RegistrationsController
prepend_before_filter :set_devise_mapping
private
def set_devise_mapping
request.env["devise.mapping"] ||= Devise.mappings[:user]
end
end
(то же самое для Users::SessionsController < Devise::SessionsController
)
Далее добавьте следующее в ваш route.rb:
devise_for :users,
:skip => [:sessions, :registrations],
:controllers => {
:omniauth_callbacks => 'users/omniauth_callbacks',
:registrations => 'users/registrations',
:passwords => 'users/passwords',
:sessions => 'users/sessions'
},
# Setting empty path gives errors in registration_path.
# So we overwrite them here.
get 'sign_in' => 'users/sessions#new', :as => :new_user_session
post 'sign_in' => 'users/sessions#create', :as => :user_session
delete 'sign_out' => 'users/sessions#destroy', :as => :destroy_user_session
get 'register' => 'users/registrations#new', :as => :new_user_registration
post 'register' => 'users/registrations#create', :as => :user_registration
Чтобы также разрешить учетную записьредактируя, вы должны добавить свои собственные маршруты редактирования и обновления:
namespace :users do
resource :registration, only: [:edit, :update], path: ''
end