Gem 可以实现获取上一篇,下一篇文章功能的 Gem

xufeng · 2012年02月27日 · 最后由 leomayleomay 回复于 2012年02月28日 · 4102 次阅读

上一篇文章 下一篇文章,有没有好用的 GEM 啊?不是分页,是在一片文章底部,调用文章 ID 的前后 2 条记录!

分页的 Gem 不能用吧?

上一条记录,下一条记录

kaminari 呀。

#3 楼 @vkill 这个是插件吧?不是 GEM,具体的用法能简单说一下吗?菜鸟啊

自己写...看起来很简单的样子....

在 controller 里的 show 里面可以给一个@pre_article和 next_article 吧。

7 楼 已删除

#7 楼 @LarryLv 如果有很多 model 都需要实现这个功能,就自己写一个 acts_as_series 咯

我昨天才刚写过,记得是有这样的 Gem 的,但是忘了

顶一下,高手发布一下见解啊

加上一贴下一贴的 id 在表里面,看上去是最简单的,只要你不在中间插纪录,插的话就像双链列表一样需要断链,再把两边连接起来,删除也是同样道理。

更简单的方法是用一个 integer 的字段,保存位置的数值。下一个就是大于这个数值的第一个纪录,上一个就是小于这个纪录第一个数值。

其实不用 integer 也可以。日期也可以。:D

Gem 不知道有没有,功能很简单,自己写一个都可以的。

#3 楼 @vkill by_star 的功能非常实用啊!

#13 楼 @huacnlee 请问 by_star 的用法,是把的文件直接 copy 到 vendor 这个目录吗?

by_star 这里没有具体的安装方法啊?也没有 wiki

#11 楼 @huacnlee 顶这楼

这么简单哪用找 gem 阿

#14 楼 @xufeng 我叉,自己研究

#15 楼 @Rei 有好用的 Gem 当然要用了,何必研究去写呢,开发效率优先

#12 楼 @hisea Timestamps 只记录到秒. 万一发帖量大,多个帖子在同一时间就不好办了。

#16 楼 @huacnlee 一般菜

gem install by_star

require 'by_star'

#18 楼 @siyang1982 只是提一个想法,不一定非要 timestamp,只要能排序用什么都行的。

#11 楼 @huacnlee 这个简单,但是得单加一列数字:(

#20 楼 @hisea 一直没有找到完美的方案~

http://www.arailsdemo.com/posts/6 倒数 3 个 Sections, 提供了另一种解决思路,效果见其页面下的导航。

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} }
需要 登录 后方可回复, 如果你还没有账号请 注册新账号