gpt4 book ai didi

ruby-on-rails - Rails - 按连接表数据排序

转载 作者:数据小太阳 更新时间:2023-10-29 06:27:04 24 4
gpt4 key购买 nike

我有一个 RoR 项目正在进行中。以下是我的模型的适用部分。

首页

has_many :communities, :through => :availabilities
has_many :availabilities, :order => "price ASC"

社区

has_many :homes, :through => :availabilities
has_many :availabilities

可用性

belongs_to :home
belongs_to :community

数据库中的“availabilities”表有附加数据列“price”

所以现在我可以打电话了

@home.availabilities.each do |a|
a.community.name
a.price

并根据需要取回按价格排序的可用性数据。我的问题是:

有没有办法通过 avaliabilities.first.price(第一 = 最低)自动订购房屋?也许是 default_scope :order 的东西?

最佳答案

我建议避免使用 default_scope,尤其是在另一个表上的价格之类的地方。每次您使用该表时,都会进行连接和排序,这可能会在复杂查询中产生奇怪的结果,并且无论如何都会使您的查询变慢。

自带scope没什么问题,更简单,更清晰,可以这么简单:

scope :ordered, -> { includes(:availabilities).order('availabilities.price') }

PS:记得在price上添加索引;另请参阅此处的其他出色答案,以在加入/包含之间做出决定。

关于ruby-on-rails - Rails - 按连接表数据排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197649/

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