2014-12-14 4 views
0

У меня есть приложение Rails, использующее Devise для аутентификации пользователей. Я уверен, что пользовательская функция Devise edit работает ранее, но по какой-то причине редактирование/обновление больше не работает. Когда я нажимаю «Обновить», страница просто обновляется в форме. Он также отображает «Пожалуйста, просмотрите перечисленные ниже проблемы», хотя я ввел все правильно.Devise Пользователь не может быть отредактирован

Функция отмены счета работает отлично, однако. Может ли проблема быть URL-адресом? Если да, то почему отменяет работу учетной записи, а обновление - нет? У меня есть модель пользователя, вложенная в другую модель, но я пробовал варианты на пути URL, ни один из которых не работал.

Ниже форма страницы генерируется Завещания и использованием simple_form:

.col-md-5.col-md-offset-2 
    %h2 
    Edit #{resource_name.to_s.humanize} 
    = simple_form_for(resource, as: resource_name, url: registration_path(resource_name) , html: { method: :put }) do |f| 
    = f.error_notification 
    .form-inputs 
     = f.input :email, required: true, autofocus: true 
     - if devise_mapping.confirmable? && resource.pending_reconfirmation? 
     %p 
      Currently waiting confirmation for: #{resource.unconfirmed_email} 
     = f.input :password, autocomplete: "off", hint: "leave it blank if you don't  want to change it", required: false 
     = f.input :password_confirmation, required: false 
     = f.input :current_password, hint: "we need your current password to confirm  your changes", required: true 
    .form-actions 
     = f.button :submit, "Update" 
    %h3 Cancel my account 
    %p 
    Unhappy? #{link_to "Cancel my account", registration_path(resource_name), data: {  confirm: "Are you sure?" }, method: :delete} 
    = link_to "Back", root_path 

Update:

Вот распечатка development.log:

Started PUT "/users" for 127.0.0.1 at 2014-12-14 00:05:07 -0500 
Processing by Users::RegistrationsController#update as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"Zhtv8rbmwIDuZO7Tv/0db7tSIGfGUEW56fqPKzkgQSo=", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "current_password"=>"[FILTERED]"}, "commit"=>"Update"} 
    [1m[36mUser Load (0.3ms)[0m [1mSELECT `users`.* FROM `users` WHERE `users`.`id` = 16 ORDER BY `users`.`id` ASC LIMIT 1[0m 
    [1m[35mUser Load (0.2ms)[0m SELECT `users`.* FROM `users` WHERE `users`.`id` = 16 LIMIT 1 
    [1m[36m (0.2ms)[0m [1mBEGIN[0m 
    [1m[35m (0.1ms)[0m ROLLBACK 
    Rendered devise/registrations/edit.html.haml within layouts/application (4.3ms) 
    Rendered common/_login.html.haml (0.5ms) 
Completed 200 OK in 328ms (Views: 175.1ms | ActiveRecord: 0.7ms) 

Вот мои маршруты. rb-файл. У меня есть пользователи, перечисленные дважды.

devise_for :users 

root 'welcome#index' 

resources :wedding_checklists do 
    resources :users 
    resources :checklist_items 
end 
+1

Проверьте файл 'log/development.log', когда произошла ошибка; скорее всего, будет более подробная информация о том, почему действие тихо проваливается. –

+0

Похоже, вы настроили Devise :: RegistrationsController, разместите содержимое Пользователей: RegistrationsController # update – Hoa

+0

Спасибо, что заметили это. У меня не было никаких настроек в этом файле, поэтому я просто изменил маршруты до стандартных маршрутов Devise. Я обновлю свой вопрос с помощью своих маршрутов. Rb. –

ответ

1

Похоже, что произошла ошибка, но не была показана. Пожалуйста, добавьте <%= devise_error_messages! %> в форму и сообщите мне, какие ошибки распечатаны.

Смежные вопросы