未定义的方法’link_to’

我正在写一个ruby-on-rails库模块:

module Facets class Facet attr_accessor :name, :display_name, :category, :group, :special ... URI = {:controller => 'wiki', :action => 'plants'} SEARCH = {:status => WikiLink::CURRENT} #Parameters is an hash of {:field => "1"} values def render_for_search(parameters) result = link_to(display_name, URI.merge(parameters).merge({name => "1"})) count = WikiPlant.count(:conditions => (SEARCH.merge(parameters.merge({name => "1"})))) result << "(#{count})" end end ... end 

当我调用render_for_search时,我得到了错误

 undefined method 'link_to' 

我已经尝试过直接要求url_helper,但无法弄清楚出了什么问题。

这是因为,ActionView urlhelpers仅适用于Views,而不适用于lib目录。

link_to方法可以在ActionView :: Helpers :: UrlHelper模块中找到,另外还有你

试试这个。

 类Facet
   包括ActionView :: Helpers :: UrlHelper
 ...
结束

试试这个:

 ActionController::Base.helpers.link_to 

简单地包括帮助者不会让你更进一步。 帮助程序假定它们位于请求的上下文中,以便它们可以读出域名等。

反过来做; 在应用程序助手中包含您的模块,或类似的东西。

 # lib/my_custom_helper.rb module MyCustomHelper def do_stuff # use link_to and so on end end # app/helpers/application_helper.rb module ApplicationHelper include MyCustomHelper end