Так что я пытаюсь делегировать метод format_text
методу уровня класса, поэтому у меня не было бы двух методов с тем же именем. Есть ли хороший образец или способ сделать это? Причина этого в том, что я могу позвонить format_text
как в представлениях, так и в презентациях. Я понимаю, что, вероятно, не очень хорошая практика использовать ApplicationHelper вне представлений.Передача метода методу класса с тем же именем в ApplicationHelper
application_helper.rb
module ApplicationHelper
# would like to do something like this:
# delegate :format_text, to: self.format_text
# all this method does is call self.format_text
def format_text(text)
# calls the class level method
format_text(text)
end
# need the self. in front to use outside of view
def self.format_text(text)
# do something to the text and return a string
end
end
Вид использует помощника как например:
some_view.html.haml
%label= format_text('something needs formatting')
Но в некоторых случаях форматирование должно быть вниз на уровень ведущего. В этом случае для использования метода format_text
его нужно называть как ApplicationHelper.format_text
.
some_presenter.rb
def header_of_some_data
"#{@name} blah #{ApplicationHelper.format_text('some text')}"
end