Если я вас понимаю полностью, вы имеете в виду, что вы хотите вызвать метод 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 %>
(Да, это было, вероятно, более подробный код, чем вам нужно Это может были сокращены.)