获取"过滤链停止为:validate_account_update_params呈现或重定向"当试图更新用户时

时间:2016-06-19 08:04:40

标签: ruby-on-rails angularjs devise

我正在使用ng-token-auth和devise_token_auth进行身份验证。当我尝试使用

更新用户时
$auth.updateAccount

它告诉我

Unpermitted parameters: credentials, registration
Filter chain halted as :validate_account_update_params rendered or redirected

我在application_controller.rb中包含以下内容

before_action :configure_permitted_parameters, if: :devise_controller?
private
def configure_permitted_parameters
 devise_parameter_sanitizer.for(:sign_up) << :name
 devise_parameter_sanitizer.for(:account_update) << :name << :credentials
end

此外,凭证字段在用户模型中序列化为数组

class User < ActiveRecord::Base
 serialize :credentials, Array
end

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,终于找到了解决方案。对我来说,问题是在孩子:validate_account_update_params之前调用了父过滤器:configure_permitted_parameters。这显然是至少Rails 4.2(可能在之前)的新行为。在孩子中添加这个修复它:

prepend_before_action :configure_permitted_params