Using link_to in a class in a Rails helper
class, helper, link-to, ruby-on-rails
Solution
This is because within the Class Facet you don't have access to the template binding. In order to call the `render_for_search` method you probably do something like
<%= Facet.new.render_for_search %>
Just override your `initialize` method to take the current context as argument. The same applies to the params hash.
class Facet
def initialize(context)
@context = context
end
def render_for_search
@context.link_to("Value", @context.params)
end
end
Then call
<%= Facet.new(self).render_for_search %>
Otherwise, define the `render_for_search` method directly within the `MyHelper` module and don't wrap it into a class.
Problem
I have a rails helper using the structore below, but when I use it I get the message ``` undefined method 'link_to' ``` The helper is arranged as: ``` 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 ```