Ich fragte mich, warum jemand helper_method in einem Controller verwenden sollte, um eine Hilfsmethode zu erstellen, anstatt den "normalen" Weg zu erstellen, der sich in der Hilfsdatei befindet. Was für die Vor- und Nachteile?Controller helper_method
Antwort
helper_method
ist nützlich, wenn die Funktionalität zwischen dem Controller und der Ansicht verwendet wird. Ein gutes Beispiel ist etwas wie current_user
.
Wenn die Methode mehr mit der Steuerungslogik und nicht mit der Formatierung arbeitet, gehört sie in den Controller. So etwas wie current_user
würde zwischen allen Controllern geteilt werden, so dass es in der definiert werden sollte.
Wahre "Helfer" -Methoden befassen sich mit der Ansicht und behandeln Dinge wie Formatierung und Vorlagenlogik. Diese werden im Controller selten benötigt und gehören in ein eigenes Modul unter app/helpers. Sie können diese bei Bedarf in Ihren Controller einbinden, aber Sie erhalten schließlich die gesamte Palette an View-Hilfsmethoden, die Ihrem Controller zur Verfügung stehen.
Methoden zwischen Controller zu teilen und sehen Sie haben mehrere Möglichkeiten:
- Verwendung view_context http://apidock.com/rails/AbstractController/Rendering/view_context
- es in der Steuerung definieren und im Hinblick auf durch die helper_method Klassenmethode http://apidock.com/rails/ActionController/Helpers/ClassMethods/helper_method
- definiert Verfügung stellen in ein gemeinsames Modul und enthalten/erweitern