よくある下記のようなアカウント編集ページをdeviseで作る場合。
- パスワードとパスワード(確認)を入力した場合はパスワードを更新。
- パスワードを入力しなくても他の項目(emailなど)は更新可能。
こんな感じでresource.update_without_passwordを使い分ければOK。
# app/controllers/registrations_controller.rb:
class RegistrationsController < Devise::RegistrationsController
protected
def update_resource(resource, params)
if params[:password].present? && params[:password_confirmation].present?
resource.update_attributes(params)
else
resource.update_without_password(params)
end
end
end
簡単だけどdeviseのWikiには載ってないようなので。