Highlight and pagination


#1

I made a search-field which shows all hits and highlights the all
words searched for:

def suche

      if params[:link][:suchfeld] == "description"
          @description = "show"
          @highlight = params[:suche]
      end

    @link_pages, @links =
        paginate :link, :order_by => 'url',
        :conditions => ["#{params[:link][:suchfeld]} LIKE ?",

“%”+params[:suche]+"%"],
:include => [:member],
:per_page => 3

end

view:

<% if @description %>

<%= highlight(link.description, @highlight, highlighter = '\1') %>
<% else %>
<%= link.description %>
<% end %> <%= pagination_links(@link_pages) %>

Everything works fine when I get only 1 result page. When I get
more pages and click the pages_link highlighting no longer works.

You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]

WHat can I do?

Thanx


#2

Sounds like when you go to the second page, you no longer have
params[:link][:suchfeld] set.

Also, there may not be a reason to set @highlight = params[:suche].
The params are available to the View and you can just do:
<%= highlight(link.description, params[:suche], highlighter = ‘\1’) %>

But I think your problem isn’t the highlighting, it’s that the action
suche is expecting params[:link][:suchfeld].

HTH,
Kevin