Question

<%= will_paginate(@posts) %> 
# will generate the links like this '<a href="/posts?page=n">a link</a>'

What should I do if I want to change the href base on /contents, etc. <a href="/contents?page=n">a link</a> ?

It seems that there is no options for this , help!

Was it helpful?

Solution

You will probably have to write your own LinkRenderer. See this blog post, and the code for LinkRenderer.

Briefly:

in environment.rb you need something like this:

WillPaginate::ViewHelpers.pagination_options[:renderer] = 'MyLinkRenderer'

in application_helper.rb

class MyLinkRenderer < WillPaginate::LinkRenderer
  def page_link(page, text, attributes = {})
    url = url_for(page) # you should find a better way to do this...
    url.sub!('posts','contents')
    @template.link_to text, url, attributes
  end
end
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top