Если я вас полностью понимаю, вы имеете в виду, что хотите вызвать метод link_to
в своем вспомогательном модуле, верно? Затем вспомогательный метод, когда вызывается, вернет результат метода link_to
в любое представление, вызвавшее его.
Если это то, что вы хотите, я сталкиваюсь с подобной проблемой, поскольку вспомогательный модуль не может получить доступ к методу link_to
, кроме как через экземпляр ActionView::Helpers::URLHelper
, который был создан в ответ на ваш запрос на обслуживание. Я предполагаю, что к этому объекту можно получить доступ через системную переменную Rails, но я не знаю, что это может быть. Мысли?
Что касается interrim, мой ответ - использовать метод link_to
только в вашем файле просмотра. Ваш вспомогательный файл будет выглядеть примерно так:
module MyHelper
def MyHelper.my_helper_method
MONTHLIST = [ [ "January", "1" ], [ "February", "2" ], [ "March", "3" ] ].freeze
end
end
Тогда ваш файл вида будет вызывать вспомогательный метод следующим образом:
<% require '[path to helper file]' %>
<% months = MyHelper.my_helper_method %>
<% months.each do |month_name, month_num| %>
<%= link_to(month_name, month_num) %>
<% end %>
(Да, это был, вероятно, более подробный код, чем вам нужно. Его можно было сократить).