Prabhakar
Prabhakar

Reputation: 6754

Rails 4 Devise custom routes

I am using 'devise', '~> 3.4.1' and rails 4 in my app. When I try to create custom routes am getting wiered error. What else I need to add in my route.rb

Error: ArgumentError: ' devise/sessions' is not a supported controller name. This can lead to potential routing problems. See

routes.rb

   Rails.application.routes.draw do
    devise_for :users

   devise_scope :user do
    get 'register', to: 'devise/registrations#new', as: :register
    get 'login', to: ' devise/sessions#new', as: :login
 end

The problem occured at login route.

Upvotes: 2

Views: 3710

Answers (4)

henggana
henggana

Reputation: 157

There is a typo in your code, a space before 'devise/sessions#new'.

This,

get 'login', to: ' devise/sessions#new', as: :login

should be

get 'login', to: 'devise/sessions#new', as: :login

Upvotes: 2

peeyush singla
peeyush singla

Reputation: 577

Try out this code:

devise_scope :user do
    get '/login' => 'devise/sessions#new'
    get '/register' => 'devise/registrations#new'
end

Upvotes: 2

Ajinkya Pisal
Ajinkya Pisal

Reputation: 591

You need to do it this

devise_for :users, path_names: {
  sign_in: 'login', sign_out: 'logout',
  password: 'secret', confirmation: 'verification',
  registration: 'register', edit: 'edit/profile'
}

Source: http://www.rubydoc.info/github/plataformatec/devise/ActionDispatch/Routing/Mapper:devise_for

Upvotes: 1

shikha
shikha

Reputation: 669

 devise_for  :user, :path => ' ', :path_names => { :sign_in => "login" :sign_up => "register" }

Upvotes: 0

Related Questions