2013-08-06 14 views

risposta

4

Se con "disabilita" si intende tornare alle linee Rails 3 in stile attr_accessible, quindi sì.

Basta usare la gemma .

39

La disattivazione della protezione degli attributi è quasi sempre una cattiva idea.

Con quella nota obbligatoria di mezzo, ecco come spegnerlo:

config.action_controller.permit_all_parameters = true 

Luogo questo config/application.rb

+0

Ho appena provato questo e non ha funzionato per me (su un'applicazione Rails 4.0.0). – Batkins

+2

ha funzionato per me. D'accordo - è generalmente una cattiva idea - ma il mio caso d'uso è un sito di amministrazione dove gli amministratori possono cambiare qualsiasi cosa. – Zubin

+1

Ha funzionato per me. Assicurati di inserire la linea nella classe Application e riavvia il server HTTP. – Guildenstern70

-2

Naturalmente è possibile! Secondo Forti Documenti ufficiali di parametri (https://github.com/rails/strong_parameters), è possibile disattivare l'aggiunta di seguito i codici al vostro config/application.rb:

config.active_record.whitelist_attributes = false 

Funziona per me in Rails 3.2

+1

questo è per disabilitare protected_attributes – brauliobo

6

mi sono imbattuto in questo problema in cui mi stava cercando di memorizzare tutti i parametri da un webhook da Stripe.

Se si desidera consentire tutti i parametri per una singola istanza, è possibile chiamare #to_hash sul proprio oggetto params prima di passarlo nel metodo di inizializzazione.

Es:

@my_object = MyObject.new(params[:my_object].to_hash) 
0

per fermare gli attributi proibiti essere controllati per le applicazioni è possibile assegnare il controllo ..

ad esempio mettere il seguente codice nel

config/inizializzatori/disable_strong_parameters.rb

module ActiveModel 
    module ForbiddenAttributesProtection 
    protected 
     def sanitize_for_mass_assignment(attributes) 
      attributes 
     end 
     alias :sanitize_forbidden_attributes :sanitize_for_mass_assignment 
    end 
end 
Problemi correlati