Ist es möglich, Variablen im Übergang zu senden?Übergeben von Variablen an Rails StateMachine-Edelsteinübergänge
dh@car.crash!(:crashed_by => current_user)
Ich habe Rückrufe in meinem Modell, aber ich brauche sie den Benutzer zu senden, die den Übergang angestiftet
after_crash do |car, transition|
# Log the car crashers name
end
Ich kann nicht current_user zugreifen, da ich im Modell bin und nicht der Controller- /Aussicht.
Und bevor Sie es sagen ... Ich weiß, ich weiß.
Versuchen Sie nicht, Session-Variablen in dem Modell
ich es zuzugreifen.
Wenn Sie jedoch einen Rückruf erstellen möchten, der etwas protokolliert oder auditiert, ist es sehr wahrscheinlich, dass Sie wissen wollen, wer das verursacht hat. Normalerweise würde ich etwas in meinem Controller haben, der etwas tat, wie ...
@foo.some_method(current_user)
und meine Foo Modell würde einige Benutzer some_method anstiften erwarten, aber wie soll ich tun dies mit einem Übergang mit dem State gem?
Zufällig stolperte ich bei einer Google-Suche wieder über meine eigene Frage und diese Antwort war sehr hilfreich. Vielen Dank. –
Ich denke, das ist definitiv besser als User.current, das ich sehe, dass andere implementieren, wenn sie auf diese Art von Problem stoßen. Die Benutzerinteraktion gehört zur Controller-Ebene. –
Das funktioniert gut, aber Sie müssen den Übergang korrekt buchstabieren. Lösung oben hat ein extra 's'. – Brenda