我有一个使用下面的structore的rails helper,但是当我使用它时,我得到了消息
undefined method 'link_to'
该助手的排列方式为:
module MyHelper
class Facet
def render_for_search
link_to("Value", params)
end
end
class FacetList
attr_accessor :facets
def initialize
#Create facets
end
def render_for_search
result = ""
facets.each do |facet|
result << facet.render_for_search
end
result
end
end
end
最佳答案
这是因为在Class Facet中,您无权访问模板绑定(bind)。
为了调用render_for_search
方法,您可能需要执行以下操作
<%= Facet.new.render_for_search %>
只需重写
initialize
方法以将当前上下文作为参数即可。这同样适用于params哈希。
class Facet
def initialize(context)
@context = context
end
def render_for_search
@context.link_to("Value", @context.params)
end
end
然后打电话
<%= Facet.new(self).render_for_search %>
否则,请直接在
render_for_search
模块内定义MyHelper
方法,不要将其包装到类中。关于ruby-on-rails - 在Rails帮助器的类中使用link_to,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2023751/