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

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

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

分页的Gem 不能用吧?

共收到 23 条回复

上一条记录, 下一条记录

kaminari呀。

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

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

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

我现在是自己在model了添加了pre_id和next_id两个field 感觉比较麻烦,不知道有没有可用的gem

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