2010-08-23 9 views
43

Zastanawiam się, dlaczego ktoś powinien użyć metody helper_method w kontrolerze, aby stworzyć metodę pomocnika, zamiast tworzyć "normalny" sposób, który znajduje się wewnątrz pliku pomocnika. Jakie są tego plusy i minusy?Kontroler helper_method

Odpowiedz

81

helper_method jest przydatny, gdy funkcjonalność jest używana między kontrolerem a widokiem. Dobrym przykładem jest coś takiego jak current_user.

Jeśli metoda zajmuje się logiką sterownika, a nie formatowaniem, wówczas należy do kontrolera. Coś takiego jak current_user byłoby wspólne dla wszystkich kontrolerów, więc powinno być zdefiniowane w ApplicationController.

Prawdziwe metody "pomocnicze" dotyczą widoku i obsługują takie funkcje, jak formatowanie i logika szablonu. Są one rzadko potrzebne w kontrolerze i należą do ich własnego modułu pod aplikacją/pomocnikami. Możesz je uwzględnić w swoim kontrolerze, gdy zajdzie taka potrzeba, ale otrzymasz pełną dostępną dla kontrolera metodę podglądu całego modułu.