如果我完全理解你,你的意思是你想link_to
在你的帮助模块中调用该方法,对吗?然后,辅助方法在调用时会将link_to
方法的结果返回给调用它的任何视图。
如果这就是您想要的,那么我正在反对类似的问题,因为辅助模块无法访问该link_to
方法,除非通过为ActionView::Helpers::URLHelper
响应您的服务请求而创建的实例。我假设这个对象可以通过 Rails 系统变量访问,但我不知道那可能是什么。想法?
在此期间,我的回答是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 %>
(是的,这可能是比您需要的更冗长的代码。它可以被缩写。)