上一篇文章 下一篇文章,有没有好用的 GEM 啊?不是分页,是在一片文章底部,调用文章 ID 的前后 2 条记录!
分页的 Gem 不能用吧?
加上一贴下一贴的 id 在表里面,看上去是最简单的,只要你不在中间插纪录,插的话就像双链列表一样需要断链,再把两边连接起来,删除也是同样道理。
更简单的方法是用一个 integer 的字段,保存位置的数值。下一个就是大于这个数值的第一个纪录,上一个就是小于这个纪录第一个数值。
其实不用 integer 也可以。日期也可以。:D
Gem 不知道有没有,功能很简单,自己写一个都可以的。
scope :previous, lambda { |i, limit| {:conditions => ["#{self.table_name}.id < ?", i.id], :order => "#{self.table_name}.id DESC", :limit => limit} }
scope :next, lambda { |i, limit| {:conditions => ["#{self.table_name}.id > ?", i.id], :order => "#{self.table_name}.id ASC", :limit => limit} }