2014-09-06 40 views
3

我有以下设置:轨道4 +设计 - 未经许可参数更新用户的帐户时

的routes.rb

​​

RegistrationController

class RegistrationsController < Devise::RegistrationsController 

    def update 
    ... 
    end 

    def user_params 
    params.require(:user).permit(:tw_account, :fb_account, :current_password, :password, :password_confirmation) 
    end 
end 

但每次当时间我尝试更新用户的数据,我收到以下错误消息:

不允许的参数:tw_account,fb_account

但是,当我创建这两个领域一个新的帐户,他们得救了。如何让他们更新能力?

谢谢

+0

您必须查看此主题http://stackoverflow.com/questions/16379554/strong-parameters-with-rails-4-0-and-devise 此主题必须为您提供帮助。 – 2014-09-06 23:18:50

回答

4

你可能可能想要去与

class ApplicationController < ActionController::Base 
    before_action :configure_permitted_parameters, if: :devise_controller? 

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:tw_account, :fb_account, :current_password, :password, :password_confirmation) } 
    end 
end 
+0

不幸的是同样的错误。 – user984621 2014-09-06 21:11:32

+1

这很奇怪,这个应该已经诀窍 – 2014-09-09 07:38:42

8

这对我的作品,继承设计:: RegistrationsController

class RegistrationsController < Devise::RegistrationsController 

    before_filter :configure_permitted_parameters 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:account_update).push(:tw_account, :fb_account) 
    end 

end 

你也应该删除current_password,password_confirmation和参数的密码,因为设计已经处理了这些。

+0

谢谢。这个对我有用。但有什么区别: 'devise_parameter_sanitizer.for(:sign_up){| u | u.permit(:tw_account,:fb_account)}' 为什么这不起作用... – Hegwin 2016-01-14 02:13:19

+0

任何人都有链接到文档中显示的位置?它似乎记录不完整 – k26dr 2016-07-28 18:23:03