Copy views:
rails generate devise:views
Views by users:
# config/initializers/devise.rb
config.scoped_views = true
Generate scoped views:
rails generate devise:views users
This will copy views:
users/sessions/new
...
If you would like to generate only a few sets of views, like the ones for the registerable and confirmable module, you can pass a list of modules to the generator with the -v flag.
rails generate devise:views -v registrations confirmations
devise_for :users, :skip => [:registrations, :confirmation]
- change default sign_in/sign_out routes
- Examples
devise_for :users,
:controllers => { :sessions => 'sessions' },
:skip => [:registrations, :confirmation],
:path => '/',
:path_names => {:sign_in => 'login', :sign_out => 'logout' }
This will generate routes:
new_user_session GET /users/login(.:format) sessions#new
user_session POST /users/login(.:format) sessions#create
destroy_user_session DELETE /users/logout(.:format) sessions#destroy
Controller:
# app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
...
end
devise_for :users, :skip => [:sessions]
as :user do
get 'signin' => 'devise/sessions#new', :as => :new_user_session
post 'signin' => 'devise/sessions#create', :as => :user_session
match 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session,
:via => Devise.mappings[:user].sign_out_via
end