检索具有相同产品ID的前3个帖子

时间:2014-10-14 07:30:19

标签: sql ruby-on-rails database activerecord

我尝试构建的平台有一个侧边栏,可以显示以前具有相同产品ID的帖子。这样用户可以轻松导航到在相同ID下分类的更多资源。

这是我尝试过的where子句,但遗憾的是它只检索前3个帖子,这些帖子具有相同的ID而不是之前的帖子。

@prev = Post.where("product_id = ? AND created_at >= ?", params[:product_id], params[:created_at]).order('created_at desc').limit(3)

我错过了什么吗?

编辑:示例输出

如果表格包含后A,B,C,D和E.那么对于后A,它应该显示B,C和D.对于后B,它应该显示C,D和E.

所以,我想为每个帖子获取前3个帖子。而不仅仅是前3个帖子。

2 个答案:

答案 0 :(得分:0)

要选择前三个帖子,只需删除created_at参数,如下所示:

@prev = Post.where("product_id = ?", params[:product_id]).order('created_at desc').limit(3)

答案 1 :(得分:0)

这个怎么样: -

首先找到产品

@product = Post.find_by_id(params[:product_id])

然后根据产品的created_at日期查找之后创建的所有产品: -

@prev = Post.where("created_at > ? AND project_id = ?", @product.created_at, @product.id).order('created_at desc').limit(3)