2014-09-06 76 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