gpt4 book ai didi

ruby-on-rails - 关于 ActiveRecord#default_scope 方法和默认排序的问题

转载 作者:行者123 更新时间:2023-12-04 06:01:21 26 4
gpt4 key购买 nike

关于 Rails 2/3 的 default_scope 的问题。
在我的 Rails 3 项目中,我使用了很多 default_scope 来通过 created_at desc 进行排序。
所以首先我写道:

default_scope order("created_at desc")

在我的许多模型中。
但问题是 created_at 几乎存在于我的每个应用程序表中......
因此,如果我编写一个简单地对两个表进行连接的查询,我会收到一个 SQL 错误 ambiguous column created_at...所以我不得不重写所有 default_scopes 以包含 table_name,例如:

default_scope order("posts.created_at desc")

有没有更好的方法来处理这个问题,还是唯一的解决方案?

谢谢。

最佳答案

在 Rails 中使用 SQL 字符串时,您应该始终指定表名,以避免这些歧义。请注意,您可以执行以下操作:

default_scope order("#{table_name}.created_at desc")

关于ruby-on-rails - 关于 ActiveRecord#default_scope 方法和默认排序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318263/

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