设计update_without_password给出了ForbiddenAttributesError

时间:2016-04-17 05:36:03

标签: ruby-on-rails ruby-on-rails-4 devise

我在我的用户模型中添加了其他字段,然后相应地更新了configure_account_update_params方法。一切正常,直到我希望用户能够更新他们的信息而无需输入他们当前的密码。

所以我删除了视图的字段并更改了RegistrationsController中的update方法

这是我的控制器,我不确定我是否遗漏了某些东西

class Users::RegistrationsController < Devise::RegistrationsController
  before_filter :configure_account_update_params, only: [:update]

  def update
    resource.update_without_password(resource_params)
  end

  # If you have extra params to permit, append them to the sanitizer.
  def configure_account_update_params
    devise_parameter_sanitizer.for(:account_update) << [:first_name, :last_name, :country, :phone_number, :gender, :birthdate]
  end
end

1 个答案:

答案 0 :(得分:2)

根据设计文档,您应该在控制器中替换它。

    class Users::RegistrationsController < Devise::RegistrationsController

      protected

        def update_resource(resource, params)
         resource.update_without_password(params)
        end
   end