ruby-on-rails – 使用will_paginate的RESTful分页路由
发布时间:2020-12-17 03:08:53 所属栏目:百科 来源:网络整理
导读:我有这样的嵌套路线: map.resources :foo do |foo| foo.resources :bar do |bar| bar.resources :baz endend 我在每个资源的索引操作中都有分页列表,我需要缓存每个页面,为此我需要路由是RESTful,我如何为它实现REFTful路由? 例如,我希望路线将是这样的:
我有这样的嵌套路线:
map.resources :foo do |foo| foo.resources :bar do |bar| bar.resources :baz end end 我在每个资源的索引操作中都有分页列表,我需要缓存每个页面,为此我需要路由是RESTful,我如何为它实现REFTful路由? 例如,我希望路线将是这样的: http://www.example.com/foo/:id/pages/:page_number http://www.example.com/foo/:id/bar/:id/pages/:page_number 解决方法
我有同样的问题.我这样编写了自己的LinkRenderer来充分利用嵌套路由.
class PaginationListLinkRenderer < WillPaginate::ViewHelpers::LinkRenderer protected def page_number(page) unless page == current_page if !@options[:params][:url].to_s.empty? tag(:li,link(page,@options[:params][:url] + "?page=" + page.to_s)) else tag(:li,page,:rel => rel_value(page))) end else tag(:li,:class => "current") end end def previous_or_next_page(page,text,classname) if page if !@options[:params][:url].to_s.empty? tag(:li,link(text,@options[:params][:url] + "?page=" + page.to_s,:class => classname)) else tag(:li,:rel => rel_value(page),:class => classname)) end #tag(:li,page),:class => classname) else tag(:li,:class => classname + ' disabled') end end def html_container(html) tag(:ul,html,container_attributes) end end 然后你必须用这个参数调用will_paginate: <%= will_paginate :params => { :url => project_task_lists_path(@project) },:renderer => PaginationListLinkRenderer %> 我希望这有帮助 :) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |