2016-07-06 14 views
10

私は私のウェブで歌ったり歌ったりするたびにエラーが発生します。「ParameterSanitizer」のDevise NoMethodError「

Herokuのログ:

Started GET "https://stackoverflow.com/users/sign_in" for 201.235.89.150 at 2016-07-06 01:35:03 +0000 
Completed 500 Internal Server Error in 3ms (ActiveRecord: 0.0ms) 
NoMethodError (undefined method `for' for #<Devise::ParameterSanitizer:0x007f5968e0a920>): 
app/controllers/application_controller.rb:11:in `configure_permitted_parameters' 

application_controller.rb

class ApplicationController < ActionController::Base 
    # Prevent CSRF attacks by raising an exception. 
    # For APIs, you may want to use :null_session instead. 
    protect_from_forgery with: :exception 

    before_filter :configure_permitted_parameters, if: :devise_controller? 

    protected 

     def configure_permitted_parameters 
      devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :provider, :uid) } 
      devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :current_password) } 
     end 
end 

ことは、それがローカルで正常に動作しています。それはちょうどHeroku上です。また、数日前にうまくいきました。

+2

これを見てください。たぶんあなたを助けることができます。 http://stackoverflow.com/questions/19791531/how-to-specify-devise-parameter-sanitizer-for-edit-action –

+0

あなたはそれがうまくいきましたと言うと、数日前にあなたは英雄を意味しますか?私はherokuに新鮮な宝石を手に入れ、それが役立つかどうかを確認するためにdynosを再起動しようとします。 Heokuで –

+0

を私の義理の宝石は4.2に更新されたので、 ".for"はもう動作していません。 @EddeAlmeidaが提案したとおり、代わりに ".permit"に変更しました。しかし、今私はこれに関する他の問題があります。みんな、ありがとう。 –

答えて

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

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email]) 
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :phone, :email, bank_attributes: [:bank_name, :bank_account]]) 
    end 
end 

「が.FOR方法は、第一引数は、アクション名で4.1 +

に廃止され:/ ACCOUNT_UPDATE編集するためのものである:sign_upは、(ユーザーなど)新たな工夫のリソースを作成するためのものである、及びリソースを更新

第二引数、:。キーはあなたができるようにパラメータの配列が含まれていますがnested_attributesをしたい場合

、例の中にあります:。ACCOUNT_UPDATE、キービーイングで別々の配列を置きます_attributes。 "

関連する問題