2016-07-06 57 views
10

Web'de şarkı söylemeye/şarkı söylemeye çalıştığımda her zaman hata alıyorum.Devre NoMethodError 'for' ParameterSanitizer

Heroku günlükleri: şey yerel olarak iyi çalışıyor edilir

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 

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. Sadece Heroku'da. Ve ayrıca birkaç gün önce gayet iyi çalışıyordu. sign_up (kullanıcılar gibi) yeni bir tasarlamak bilgi oluşturmak için, ve:.

+2

Buna bir bakın. Belki size yardımcı olabilir. http://stackoverflow.com/questions/19791531/how-to-specify-devise-parameter-sanitizer-for-edit-action –

+0

Birkaç gün önce iyi çalıştığını söylerken, kahramanca demek istiyorsun? Ben heroku taze gemset almak ve yardımcı olup olmadığını görmek için dinamikleri yeniden başlatmayı deneyin. Heroku benim devise gem –

+0

4.2 güncellendi, bu nedenle ".for" artık çalışmıyor. @EddeAlmeida'nın önerdiği gibi ".permit" olarak değiştirdim. Yine de şimdi bununla ilgili başka sorunlarım var. Herkese teşekkürler. –

cevap

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 

".en yöntem 4.1 ±

birinci Arg kaldırıldı işlem adım account_update düzenleme için/kaynak güncelleme

ikinci Argo,:. tuşlarına izin parametrelerin bir dizi içerir Eğer nested_attributes istiyorsanız

, bir örnek de yoktur. account_update, anahtar varlık ile ayrı bir dizi koymak _Öznitellikler."