新手问题 will_paginate 分页时如何重写 url?

jeky · 2013年01月31日 · 最后由 zlx_star 回复于 2013年01月31日 · 1928 次阅读

我现在的做法,新建一个类:

class PostLinkRenderer < WillPaginate::ActionView::LinkRenderer
  def url(page)
    "/p#{page}"
  end
end

然后在模板中调用:

<%= will_paginate @posts, :renderer => 'PostLinkRenderer', :previous_label => '上页', :next_label => '下页' %>

这么做,的确是可以生成这样的分页 URL,示例: www.dousile.com/p1 www.dousile.com/p2

但是如何生成这样的? www.dousile.com/pic/p1 www.dousile.com/pic/p2

可能说得不太明白,我的意思是说:能否在 PostLinkRenderer 自定义类中获取到当前页面的 url?然后我可以判断,如果是首页分页,就直接 /p1... 。如果是图片分页,就换用 /pic/p1...

或者,有什么其他方法可以实现?

class PostLinkRenderer < WillPaginate::ActionView::LinkRenderer
  def url(page)
    super.is_root_url? ? "/p#{page}" : "/pic/p#{page}"
  end
end
需要 登录 后方可回复, 如果你还没有账号请 注册新账号