2010-08-07 41 views
4
<%= will_paginate(@posts) %> 
# will generate the links like this '<a href="/posts?page=n">a link</a>' 

如果我想更改/contents等的href基地,我應該怎麼做<a href="/contents?page=n">a link</a>如何自定義will_paginate鏈接庫?

似乎沒有這個選項,幫忙!

回答

6

您可能需要編寫自己的LinkRenderer。請參閱this博客文章,以及LinkRenderer的code

簡述:

environment.rb你需要的東西是這樣的:

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

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 
+0

除了這樣的回答:在Rails 3中的autoload_paths不包括'LIB /',所以如果你把'MyLinkRenderer'放在那裏,一定要附加autoload_paths。 – awendt 2011-06-16 06:53:06