Skip to content

Instantly share code, notes, and snippets.

@maxivak
Last active April 3, 2016 22:42
Show Gist options
  • Save maxivak/cae520a986b1a922e8b4 to your computer and use it in GitHub Desktop.
Save maxivak/cae520a986b1a922e8b4 to your computer and use it in GitHub Desktop.
Devise CheatSheet

Devise examples

Tokens

confirmation, reset password tokens

Views

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

Routes for Devise

Skip

devise_for :users, :skip => [:registrations, :confirmation]

Custom

  • change default sign_in/sign_out routes

** https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-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
  

Sign in using username or email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment