Wie leite ich mehrere Aktionen zu einer einzigen Aktion während DRY aufrechterhalten?

StackOverflow https://stackoverflow.com/questions/1039000

  •  10-07-2019
  •  | 
  •  

Frage

Ich habe eine OptionsController, die eine Aktion account enthält. Die entsprechende Ansicht hat drei Formen, die auf drei verschiedene Aktionen zu veröffentlichen, update_profile, update_user und change_password. Jede Aktion läuft und dann sollte zurück zu action umleiten, wo der Blick wieder aufgebaut und wiedergegeben.

Ich habe versucht, eine after_filter trocken zu sein und schaffen die Umleitung zu tun:

after_filter( :only => [:change_password, :update_profile, :update_user] ) do |controller|
  controller.send(:redirect_to, :action => :account)
end

Allerdings scheint dies nicht genannt werden; die Aktion eher, beklagt, dass seine Ansicht nicht gefunden werden kann.

Template is missing
Missing template options/update_user.erb in view path app/views

Gibt es eine Möglichkeit, dies in einer trockenen Art und Weise tun, oder soll ich einfach in jedem der drei Aktionen den redirect_to Anruf kleben?

War es hilfreich?

Lösung

einfach den redirect_to Anruf in jedem der Aktionen. Es gibt eine feine Linie zwischen trocken und unverständlich Magie. Ich fühle mich wie der Versuch, so etwas wie ein after_filter oder irgendetwas anderes, das nonobviously zerschlägt das erwartete Verhalten einer Handlung zu tun, ist wahrscheinlich zu viel Magie.

Andere Tipps

Es ist mein Verständnis, dass nach dem Filter ausgeführt werden nach die Antwort an den Client gesendet wird, das heißt, nach jeder machen oder Umleitungen auftreten, weshalb Sie diesen Fehler sind zu sehen. Sie sollen Sie tun Dinge wie Protokolldaten oder Benchmark oder enge Verbindungen oder jede andere Art von Bereinigungs lassen Sie

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top