Variablen an Rails StateMachine-Gem-Übergänge übergeben

Ist es möglich, Variablen im Übergang zu senden? d.h.

@car.crash!(:crashed_by => current_user)

Ich habe Rückrufe in meinem Modell, aber ich muss ihnen den Benutzer senden, der den Übergang initiiert hat

after_crash do |car, transition|
  # Log the car crashers name
end

Ich kann nicht auf current_user zugreifen, da ich im Model und nicht im Controller / View bin.

Und bevor du es sagst ... Ich weiß, ich weiß.

Versuchen Sie nicht, auf Sitzungsvariablen im Modell zuzugreifen.

Ich verstehe es

Wenn Sie jedoch einen Rückruf erstellen möchten, der etwas protokolliert oder prüft, möchten Sie wahrscheinlich wissen, wer es verursacht hat? Normalerweise habe ich etwas in meinem Controller, das so etwas macht wie ...

@foo.some_method(current_user)

und mein Foo-Modell würde erwarten, dass ein Benutzer some_method initiiert, aber wie mache ich das mit einem Übergang mit dem StateMachine-Gem?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage