Ich möchte beim Speichern/Aktualisieren eines Modells in Schienen einen Feldfehler durch eine Warnung ersetzen können. Grundsätzlich mag ich nur einen Wrapper um die Validierungsmethoden schreiben, die die Fehler erzeugen werden, das Modell speichern und vielleicht in einer Warnung Hash verfügbar sein (was ebenso wie die Fehler Hash funktioniert):ActiveRecord - Modellvalidierungsfehler durch Warnung ersetzen
class Person < ActiveRecord::Base
# normal validation
validates_presence_of :name
# validation with warning
validates_numericality_of :age,
:only_integer => true,
:warning => true # <-- only warn
end
>>> p = Person.new(:name => 'john', :age => 2.2)
>>> p.save
=> true # <-- able to save to db
>>> p.warnings.map { |field, message| "#{field} - #{message}" }
["age - is not a number"] # <-- have access to warning content
Jede Idee, wie Ich könnte das umsetzen? Ich konnte :warning => false
Default-Wert zu ActiveRecord::Validations::ClassMethods::DEFAULT_VALIDATION_OPTIONS
hinzufügen. Durch die Erweiterung des Moduls, aber ich bin auf der Suche nach einem Einblick, wie Sie den Rest implementieren. Vielen Dank.
sehr cool, danke! – sa125
Die Gem-Version 0.5.1 ist kompatibel mit Rails 3, aber eine einfache Änderung an der Gemspec (siehe https://github.com/ivalkeen/validation_scopes/commit/acc1545a028605997e87fd41efece0ddffd3b999) ermöglicht die Verwendung in Schienen 4. – KenB