Я нахожусь на рельсах 4.2.1 и придумываю 3.4.1. Я в принципе хочу 2 вещи в то же самое время:Позвольте пользователю обновить свой пароль без текущего пароля в разработке
Allow users to edit their password
и
Allow users to edit their account without providing a password
мне удалось, чтобы они работают отдельно. Но решение 1 для первой проблемы, кажется, несовместимо с единственным официальным решением для второй проблемы, потому что для последнего мне нужно переопределить регистрационный контроллер.
Поэтому я попытался сделать решение 1 работу в регистрации контроллер, а не приложения один:
class Users::RegistrationsController < Devise::RegistrationsController
before_filter :configure_account_update_params, only: [:update]
protected
def configure_account_update_params
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:name, :password, :password_confirmation, :current_password) }
end
def update_resource(resource, params)
resource.update_without_password(params)
end
end
Таким образом, только добавили атрибут как имя обновляется, а пароль полностью отфильтрован. Я не уверен, что я должен начать тяжелую настройку, как в решениях 2 и 3 для такой простой цели. Я что-то пропустил?