2014-12-24 5 views
1

Я использую 'devise', '~> 3.4.1' и rails 4 в своем приложении. Когда я пытаюсь создать пользовательские маршруты, я получаю wiered error. Что еще мне нужно добавить в мой route.rbRails 4 Разработка пользовательских маршрутов

Ошибка: ArgumentError: 'devise/sessions' не поддерживается именем контроллера. Это может привести к потенциальным проблемам маршрутизации. 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 

Проблема возникла при входе в маршрут.

ответ

1

Там опечатка в коде, пространство до 'devise/sessions # new'.

Это

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

должен быть

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

Это было !. Большое спасибо. – Packer

1

Вы должны сделать это этот

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

Источник: http://www.rubydoc.info/github/plataformatec/devise/ActionDispatch/Routing/Mapper:devise_for

+0

Я изменил код, как вы сказали, ничего не изменилось. Btw as является псевдонимом для device_scope. Это ничего не изменит. Спасибо – Packer

+0

@Prabhakar да. Я понял. Вы используете пользовательский контроллер или используете собственный контроллер разработчика? –

+0

Я не использую какой-либо пользовательский контроллер. – Packer

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

Я уже пробовал, но ничего не изменилось. Благодаря! – Packer

2

Попробуйте этот код:

devise_scope :user do 
    get '/login' => 'devise/sessions#new' 
    get '/register' => 'devise/registrations#new' 
end 
Смежные вопросы