Thursday, April 02, 2009

Wykorzystanie Helperów w Kontrolerach i Modelu

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: