Wykorzystanie dostępnych w Railsach Helperów bezpośrednio w modelu, lub kontrolerach nie jest wspierane bezpośrednio przez środowisko. Przyczyn tego faktu należu upatrywać w chęci zapobiegania wykorzystania kodu Widoku w niższych warstwach, dzięki czemu wzrasta przejrzystość całej aplikacji. Niestety w pewnych specyficznych przypadkach bardzo pomocne staje się wykorzystanie bezpośrednio w modelu którejś z metod np. ActionView::Helpers::TextHelper.
Poniżej metoda, jaką możemy zastosować aby wywołać helpery (źródło)
Tworzymy plik np. helpery.rb w katalogu 'lib'
def help
Helper.instance
end
class Helper
include Singleton
include ActionView::Helpers::TextHelper
end
Teraz wystarczy w modelu lub kontrollerze dodać nagłówek:
require 'lib/helpers'
Wywołanie metody helpera sprowadza się wówczas do wywołania:
# help.name_of_helper
help.pluralize 10, "person"
No comments:
Post a Comment