Обновление контроллера Devise - PullRequest
1 голос
/ 02 сентября 2011

Я использую Devise в приложении rails для User Auth. Я уже создал контроллер регистрации и сеансов, но теперь мне нужен контроллер, который имитирует def update из строительных лесов. Есть ли способ получить доступ к контроллеру, который Devise использует для обновления пользователя?

1 Ответ

3 голосов
/ 02 сентября 2011

Да, вы можете создавать подклассы registrations_controller, используемый devise для редактирования пользователей и делать все, что вы хотите с действием обновления, это подклассный контроллер с действием обновления по умолчанию в нем:

class Users::RegistrationsController < Devise::RegistrationsController  

  def update
    self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)

    if resource.update_with_password(params[resource_name])
      set_flash_message :notice, :updated if is_navigational_format?
      sign_in resource_name, resource, :bypass => true
      respond_with resource, :location => after_update_path_for(resource)
    else
      clean_up_passwords(resource)
      respond_with_navigational(resource){ render_with_scope :edit }
    end

 end

end
...