use*_*621 3 ruby parameters ruby-on-rails devise
我有以下设置:
的routes.rb
devise_for :users, :path_names => { :controllers => {:omniauth_callbacks => "omniauth_callbacks", :registrations => "registrations"}
Run Code Online (Sandbox Code Playgroud)
并且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
Run Code Online (Sandbox Code Playgroud)
但每当我尝试更新用户的数据时,我都会收到以下错误消息:
未允许的参数:tw_account,fb_account
但是当我用这两个字段创建一个新帐户时,它们就被保存了下来.如何让它们更新?
谢谢
这对我有用,继承了Devise :: 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
Run Code Online (Sandbox Code Playgroud)
您还应该从参数中删除current_password,password_confirmation和密码,因为设计已经处理了这些.