【发布时间】:2024-09-14 07:55:02
【问题描述】:
我想按父母的姓名订购孩子。
class Child < ApplicationRecord
belongs_to :parent, -> { order(:name) }
end
class Parent < ApplicationRecord
default_scope { order(:name) }
has_one :child
end
但是
Child.includes(:parent).as_json(include: { parent: { only: :name } })
不返回正确的结果。 有什么好的办法吗?
【问题讨论】:
-
你能做到吗:
@children = Child.all.includes(:parent).order("parent.name desc") -
@ruby_newbie 我不确定你的意思。
-
我编辑了另一条评论。最终,我会在子级上定义一个名为“by_parent”的范围,该范围会返回此查询。
-
@ruby_newbie,你能分享一下范围吗?
-
Child.all.includes(:parent).order("parent.name desc") 不正确,因为父表不存在。也不需要 .all 。所以 Child.includes(:parent).order("parents.name desc") 是正确的。谢谢!
标签: ruby-on-rails ruby activerecord rails-activerecord