如何使用关联模型的 order by 来获取模型?

发布于 2024-11-30 19:56:11 字数 72 浏览 1 评论 0原文

我有模型A和B。A has_many B。现在我想获取按B的updated_at排序的A的所有记录。是否可以为此编写一个查找函数?

I have Models A and B. A has_many B. Now I wanna fetch all the records of A ordered by the B's updated_at. Is it possible to write a find function for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

九命猫 2024-12-07 19:56:11

尝试这样的事情:

A.find(:all, :include => ['Bs'], :order => 'Bs.updated_at')

Try something like this:

A.find(:all, :include => ['Bs'], :order => 'Bs.updated_at')
冰葑 2024-12-07 19:56:11

假设一个老师有很多学生,而不是 A 和 B:

teachers = Teacher.joins(:students).order('students.updated_at').uniq

Instead of A and B, lets say a Teacher has many Students:

teachers = Teacher.joins(:students).order('students.updated_at').uniq
眼泪也成诗 2024-12-07 19:56:11

当 A 有很多 B 时就没有意义了。

考虑这个例子:

A1 => [B1, B2]
A2 => [B3, B4]

假设如下:

B1.updated_at => 2.days.ago
B2.updated_at => 1.day.ago

B3.updated_at => 4.days.ago
B4.updated_at => 1.days.from_now

现在哪一个应该排在第一位,A1 还是 A2?

It doesn't makes sense when A has many Bs.

Consider the example:

A1 => [B1, B2]
A2 => [B3, B4]

Assuming the following:

B1.updated_at => 2.days.ago
B2.updated_at => 1.day.ago

B3.updated_at => 4.days.ago
B4.updated_at => 1.days.from_now

Now which one should come first, A1 or A2?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文