6 Stimmen

Ruby-Klassenbewertung, validiert_inclusion_of mit dynamischen Daten

Wenn ich ein ActiveRecord-Modell wie folgt habe

class Foo < ActiveRecord::Base
  validates_inclusion_of :value, :in => self.allowed_types

  def self.allowed_types
    # some code that returns an enumerable
  end
end

Dies funktioniert nicht, weil die Methode allowed_types zu dem Zeitpunkt, an dem die Validierung ausgewertet wird, noch nicht definiert ist. Alle Lösungen, die mir einfallen, drehen sich im Grunde darum, die Methodendefinition über die Validierung zu verschieben, damit sie bei Bedarf verfügbar ist.

Ich schätze, dass dies mehr eine Frage des Codierungsstils als alles andere sein kann (ich möchte alle meine Validierungen an der Spitze des Modells und Methoden am unteren Rand), aber ich fühle, es sollte eine Art von Lösung für diese, möglicherweise mit Lazy Auswertung der anfänglichen Modell laden?

Ist das, was ich tun möchte, überhaupt möglich? Sollte ich nur die Methode über die Validierung definieren oder gibt es eine bessere Validierung Lösung zu acheive, was ich will.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X