Rails und attr_accessible: Gibt es eine Möglichkeit, eine Ausnahme auszulösen, wenn ein nicht massenzuweisbares Attribut massenweise zugewiesen ist?

8

Gibt es eine Möglichkeit, dass Schienen einen Fehler auslösen, wenn versucht wird, Attribute, die von attr_accessible nicht erlaubt sind, massenweise zuzuweisen?

Dies wäre in der Entwicklung praktisch, um mich daran zu erinnern, warum mein glänzendes neues Modell nicht funktioniert, und auch um sich in der Produktion einzuloggen, um bösartige Aktivitäten zu erkennen.

Ich benutze Rails 2.3.8, werde aber wahrscheinlich bald auf 3 migrieren.

    
John Bachir 13.08.2010, 10:22
quelle

3 Antworten

6

Ab Rails 3.2 ist keine Monkey-Anpassung mehr nötig - Rails bietet dieses Verhalten jetzt an. Setzen Sie dies in development.rb und test.rb :

%Vor%     
John Bachir 12.11.2011, 21:15
quelle
2

Ich würde vorschlagen, etwas wie das Bento-Projekt in ihre Rails integriert zu haben App .

Sie erstellen einen Rails-Initialisierer unter config / initializers / und überschreiben dann die entsprechende Methode in der ActiveModel-Klasse, um einen MassAssignmentError (in Nicht-Produktionsumgebungen) auszulösen.

    
Walking Wiki 16.01.2011 04:41
quelle
0

Ich bin mir nicht sicher, ob das funktionieren würde, aber Sie könnten einen Test schreiben, um zu sehen, ob Ihr Objekt "respond_to (: unexpected_attr)" ist. Sie können dann versuchen, es zu erzwingen, dass attr

Alex

    
Alex 13.01.2011 18:34
quelle