在一类在Rails助手使用的link_to
-
19-09-2019 - |
题
我有使用structore下方的导轨辅助,但是当我使用它得到消息
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
解决方案
这是因为小面类内你没有访问模板绑定。
为了调用该方法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
模块内,并且不将其包装成一个类。
其他提示
尝试使用这样的:
self.class.helpers.link_to
由于的link_to未在当前范围限定。
上面将用于控制器的工作,但我猜测它会另一个辅助内正常工作。如果没有,那么尝试:
include ActionView::Helpers::UrlHelper
在助手的顶部。
不隶属于 StackOverflow