2007-12-07

多对多关联分页,用will_paginate插件实现

关键字: rails ruby will_paginate 多对多关联分页

在做项目的时候碰到这样一个问题,有两个模型:category和content,他们是多对多的关联,他们的关联模型是categoring

我要做的是根据某个特定的category来检索content,并对content分页。

Controller的代码:

  1. @category = Category.find(params[:id])   
  2. content_ids = @category.categorings.collect{|categoring| categoring.content_id}      
  3.                                    #首先取出中间表里该模型的记录集合(数组)   
  4.     if !(content_ids == [])        #然后判断该集合是否为空,如果为空则不做查询分页   
  5.       @contents = Content.paginate(:all,
  6.                                    :conditions => "id IN (#{content_ids.join(',')})"
  7.                                    :page => params[:page], :per_page => 2)        
  8.                                    #如果不为空则对关联表进行分页(利用will_paginate插件)   
  9.     end  

 然后就可以在views中利用进行分页了。

  • 1012e7a6-aa32-454e-bf8a-615951cb2026-thumb
  • 描述: 效果图
  • 大小: 9.9 KB
评论
weskycn 2008-02-28
这个办法不错,
liuqiang 2008-02-20
@category = Category.find(params[:id])
contents = @category.contents
@contents = Content.paginate :all,
:conditions => ["id IN (?)",contents] ,
:page => params[:page], :per_page => 2 貌似也可以
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

weskycn
搜索本博客
博客分类
最近加入圈子
存档
最新评论