gpt4 book ai didi

ruby-on-rails - 我如何在最近的 Rails 中订购数据库记录?

转载 作者:行者123 更新时间:2023-11-29 11:30:30 25 4
gpt4 key购买 nike

我想订购模型 Item 中的所有项目,以便它首先显示最近的项目。根据Rails guide ,下面的代码应该可以工作:

 Item.order("created_at DESC")

但是,当我在终端中输入那个(或品种)时,最新的项目总是最后显示,这就是它们在我的页面上的显示方式。我如何以最近的优先方式有效地检索它们? (我将在每个页面上一次只显示其中的一部分。)

请注意,我的项目默认范围是最早的。

更新:这是我得到的 SQL:

SELECT "comments".* FROM "comments" ORDER BY comments.created_at ASC, created_at DESC

所以我想我不应该使用默认范围...

最佳答案

您发布的查询是正确的

Item.order("created_at DESC")

它不起作用的唯一原因是是否有其他任何冲突。通常,冲突由 default_scope 表示。

如果您有一个覆盖您的订单的默认范围,您应该首先unscope查询

Item.unscoped { Item.order("created_at DESC") } 

如果您使用默认范围,我强烈建议您避免使用它们。它们很难调试和取消范围。

在极少数情况下,默认范围是有意义的。您可以在 Controller 中选择时间简单地传递(默认)范围或为其创建自定义方法。

关于ruby-on-rails - 我如何在最近的 Rails 中订购数据库记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20765128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com