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 ```

Original source