Gibt es trotzdem zu deaktivieren mit starken params?In Rails 4 deaktivieren starke Parameter standardmäßig
Und ich weiß, es ist eine Sicherheitslücke, aber ich brauche es wirklich nicht/will es.
Gibt es trotzdem zu deaktivieren mit starken params?In Rails 4 deaktivieren starke Parameter standardmäßig
Und ich weiß, es ist eine Sicherheitslücke, aber ich brauche es wirklich nicht/will es.
Wenn Sie mit "deaktivieren" meinen, auf Rails 3-style attr_accessible
Zeilen zurückzufallen, dann ja.
Verwenden Sie einfach den protected_attributes Edelstein.
Ich glaube nicht.
DHH kommentiert here on this pull request to add a disable switch to strong parameters
All dies ein Vermächtnis Sorge ist ohnehin bald als 4,0 Rails starke Parameter auf jeder zwingen wird, und Sie werden es nicht ausgeschaltet werden können.
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
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
Dies ist zu deaktivieren protected_attributes – brauliobo
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)
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
Ich habe es versucht und es hat nicht funktioniert ich (auf einer Rails 4.0.0 App). – Batkins
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
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