ROR Active Attribut Umgang mit einem Rückruf BEFORE_UPDATE
-
21-09-2019 - |
Frage
Dieser Code erzeugt ein ActiveRecordError :
Rückrufe muss ein Symbol sein Bezeichnen die Methode aufzurufen, eine Zeichenfolge zu sein ausgewertet wird ein Block aufgerufen wird, oder ein Objekt in den Rückruf reagieren Verfahren. "
before_update :check_instock, :unless => Proc.new { |inventory| inventory.needed.nil? }
def check_instock
if needed < amount
instock = true
else
instock = false
end
end
Dieser Code in meinem Inventar Modell platziert ist, ich versuche, eine gewisse Logik vor dem Aufruf zu behandeln @ inventory.update_attributes (Controller). Früher war ich mehrere Male @ inventory.update_attributes Aufruf, der Code zur Folge, dass arbeitete , nicht kurz und bündig allerdings.
Cheers!
Lösung
before_update :set_instock, :unless => :inventory_not_needed?
private
def set_instock
self.instock = (needed < amount) ? true : false
end
def inventory_not_needed?
needed.nil?
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow