Ruby on rails 设计:通过Ajax更新(编辑)用户

Ruby on rails 设计:通过Ajax更新(编辑)用户,ruby-on-rails,ajax,devise,Ruby On Rails,Ajax,Devise,我已经成功地通过Devise中的Ajax实现了登录/注册(在博客文章之后)。但我无法使用ajax更新操作。我希望用户能够通过ajax编辑他的设置,接收正确的JSON响应 因此,我尝试从Deviate复制update方法,并对其进行了编辑以返回正确的JSON响应: class RegistrationsController < Devise::RegistrationsController def update self.resource = resource_class.to_

我已经成功地通过Devise中的Ajax实现了登录/注册(在博客文章之后)。但我无法使用ajax更新操作。我希望用户能够通过ajax编辑他的设置,接收正确的JSON响应

因此,我尝试从Deviate复制update方法,并对其进行了编辑以返回正确的JSON响应:

class RegistrationsController < Devise::RegistrationsController
  def update
    self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)
    prev_unconfirmed_email = resource.unconfirmed_email if resource.respond_to?(:unconfirmed_email)

    if update_resource(resource, account_update_params) # <<< PROBLEM IS HERE
      sign_in resource_name, self.resource, :bypass => true
      render json: resource, status: :ok
    else
      clean_up_passwords resource
      render json: resource, status: :not_acceptable
    end
  end
end
account\u update\u params是Desive的一个文件中的受保护方法-如果我复制并粘贴到我的子类:

  def account_update_params
    devise_parameter_sanitizer.sanitize(:account_update)
  end
这给了我下一个错误

devise_parameter_sanitizer not found

所以看起来我走错了方向。

我通过改变

if update_resource(resource, account_update_params)
对此

if resource.update_without_password(params[resource_name])

请尝试
gem'designe',github:'plataformatec/designe',branch:'rails4'
,但我仍然在Rails3上,可以吗?或者在筛选:帐户更新参数之前尝试
,如果::designe\u controller?
if resource.update_without_password(params[resource_name])