2013-08-06 31 views

Antwort

4

Wenn Sie mit "deaktivieren" meinen, auf Rails 3-style attr_accessible Zeilen zurückzufallen, dann ja.

Verwenden Sie einfach den protected_attributes Edelstein.

39

Das Deaktivieren des Attributschutzes ist fast immer eine schlechte Idee.

Mit dieser obligatorischen Notiz aus dem Weg, hier ist, wie es deaktivieren:

config.action_controller.permit_all_parameters = true 

Dieses in config/application.rb

+0

Ich habe es versucht und es hat nicht funktioniert ich (auf einer Rails 4.0.0 App). – Batkins

+2

Arbeitete für mich. Einverstanden - es ist generell eine schlechte Idee - aber mein Anwendungsfall ist eine Admin-Seite, wo Administratoren alles ändern können. – Zubin

+1

Es hat für mich funktioniert. Stellen Sie sicher, dass Sie die Zeile in Ihre Application-Klasse einfügen und den HTTP-Server neu starten. – Guildenstern70

-2

Natürlich können Sie! Nach offiziellen Dokumente des Starken Parameter (https://github.com/rails/strong_parameters), können Sie durch Hinzufügen von unten Codes zu Ihrer config/application.rb deaktivieren:

config.active_record.whitelist_attributes = false 

Es funktioniert für mich in Schienen 3.2

+1

Dies ist zu deaktivieren protected_attributes – brauliobo

6

ich in dieses Problem lief, wo ich versuchte alle Parameter von einem Webhook von Stripe zu speichern.

Wenn Sie alle Parameter für eine einzelne Instanz zulassen möchten, können Sie #to_hash auf Ihrem params-Objekt aufrufen, bevor Sie es an Ihre initialize-Methode übergeben.

Ex:

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

zu stoppen die verbotenen Attribute für Ihre Anwendungen überprüft werden Sie die Prüfung flicken aus können ..

zum Beispiel den folgenden Code in

config/initializers/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 
Verwandte Themen