Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过在处创建的下一个和上一个帖子链接进行订购_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 通过在处创建的下一个和上一个帖子链接进行订购

Ruby on rails 通过在处创建的下一个和上一个帖子链接进行订购,ruby-on-rails,ruby,Ruby On Rails,Ruby,从这里的其他问题和答案中,我可以看出,要创建“下一个”和“上一个”链接,您可以执行以下操作: def previous_post self.class.first(:conditions => ["title < ?", title], :order => "title desc") end def next_post self.class.first(:conditions => ["title > ?", title], :order => "t

从这里的其他问题和答案中,我可以看出,要创建“下一个”和“上一个”链接,您可以执行以下操作:

def previous_post
  self.class.first(:conditions => ["title < ?", title], :order => "title desc")
end

def next_post
  self.class.first(:conditions => ["title > ?", title], :order => "title asc")
end
def上一篇文章
self.class.first(:conditions=>[“title<?”,title],:order=>“title desc”)
结束
下一站
self.class.first(:conditions=>[“title>?”,title],:order=>“title asc”)
结束
如果它们是唯一的,将按标题排序。我不太理解条件语法,不知道是否有人能解释一下


如果我想按日期创建订单,我可以将订单更改为在desc创建,在asc创建,但我的条件是什么?

如果您在rails 4上,您应该:

def previous_post
  self.class.where("created_at < ?", created_at).order(created_at: :desc).first
end

def next_post
  self.class.where("created_at > ?", created_at).order(created_at: :asc).first
end
def上一篇文章
self.class.where(“created_at<?”,created_at).order(created_at::desc)。首先
结束
下一站
self.class.where(“created_at>?”,created_at).order(created_at::asc)。首先
结束

这正是rails 2中执行活动记录查询的方式。他们使用它是因为他们是按标题排序的。您的条件将是上一篇文章的
[“created_at<?”,created_at]
,下一篇文章的
[“created_at>?”,created_at]
,Rails 4中是否有更有效的方法来实现这一点?或者这句话可以吗?还有这句话是什么意思[“created_at<?”,created_at],只是为了让我能在脑子里记住它谢谢,尽管我不确定这是我想要的。如果您转到最新的帖子,那么当您单击“上一篇帖子”时,它会将您带回到创建的第一篇帖子,而不是前一天的帖子。。。我能理解为什么它会像我们使用的那样这样做。首先,如果我不想那样做怎么办?thanks@Richlewis然后不要使用created_at,在博客帖子上设置一个日期字段,并使用我没有的日期字段,我使用一个助手来转换created_at date:(我不相信你,你是在使用
updated_at
?博客文章顶部的日期放在哪里?是的,在列中有一个updated_,虽然我想知道为什么创建at的行为是这样的,我使用这个助手def date_output(date)date.strftime(%e%B%Y))如果日期结束,然后通过创建日期,我不应该在视图中这样做吗?