2013-04-07 3 views
4

При регистрации и просмотре просмотров пароля в Devise, если вы получили сообщение об ошибке, он перенаправляет вас на родительскую страницу.Отказ от перенаправления после ошибок

Таким образом, на странице регистрации (/users/sign_up), если вы получите сообщение об ошибке, оно перенаправляет вас/пользователям и показывает ошибку.

На странице с забытым паролем (/users/password/new), если вы получили ошибку, она перенаправляет вас на /users/password и показывает ошибку.

Как его изменить, чтобы он делал то же самое, что и на странице входа, если есть ошибка, он остается на одной странице и показывает ошибку.

Я просмотрел Devise и не могу найти, где перенаправление.

Вот мои маршруты для Devise:

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 
    get 'signup' => 'devise/registrations#new', :as => :new_user 
    post 'signup' => 'devise/registrations#create', :as => :create_user_session 
    delete 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session 
    get "/account" => "devise/registrations#edit" 
end 

ответ

-2

Это не перенаправляет вас куда угодно, те адреса, которые Разрабатывают сообщения в.

Если вы хотите изменить эти адреса, увидеть вики для хорошей отправной точки: https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes

+0

Если вы идете на страницу регистрации (/ пользователи/sign_up) и нажмите Зарегистрируйтесь, не добавляя никакой информации, вы перенаправляетесь на/пользователей. – user2203362

+0

Я просто хочу, чтобы это было/signup, и если есть какие-либо ошибки, чтобы отобразиться на этой странице. – user2203362

+0

№ '/ users' - это путь к сообщениям формы. См. Https://github.com/plataformatec/devise/blob/master/app/views/devise/registrations/new.html.erb. – sevenseacat

3

Я думаю, что проблема в том, что у вас есть post 'signup' назвали неправильно. Каким путем ваша форма регистрации пользователя POST?

post 'signup' => 'devise/registrations#create', :as => :create_user_session 

Должно быть:

post 'signup' => 'devise/registrations#create', :as => :user_registration 

Вот посмотрите на мой routes.rb, который решил эту проблему:

as :user do 
    get "/signin" => "devise/sessions#new", :as => :new_user_session 
    post "/signin" => "devise/sessions#create", :as => :user_session 
    delete "/signout" => "devise/sessions#destroy", :as => :destroy_user_session 
    get "/signup" => "devise/registrations#new", :as => :new_user_registration 
    post '/signup' => 'devise/registrations#create', :as => :user_registration 
end 
Смежные вопросы