如何按“关联日期”排序?

时间:2019-03-06 22:55:31

标签: ruby-on-rails

UserAirports都有很多Preferences

我要显示的机场,按其首选项的“首次添加”排序。我该怎么做呢?由于机场是“静态”数据库,因此它们的created_date是无关紧要的。我们正在寻找更多类似associated_date之类的东西。

我想我需要做的是在联接表中找到关联,并得到它的 created_date

我确定我能弄清楚。但是,有人可以立即找到解决方案吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

您是否正在寻找类似的东西?

Preference.where.not(airport_id: nil).order(created_at: :asc)

这将带给您Preference的所有实例,其中air_id为升序。

此外,这也可能对您有帮助:

Rails order by association field

基于此链接的方法是这样的:

Airport.joins(:preferences).merge(Preference.order(created_at: :asc))

这是假设您在UserAirportPreference之间建立了传统的通过关联的方式。

答案 1 :(得分:1)

假设您希望CalculateTitleFee()的{​​{1}}由将airports到{{1}的@current_user的{​​{1}}日期{ }(哇!)...

并假设:

created_at

我相信您想要类似的东西

preferences

airports,具体取决于您的需求。

未经测试,因此您可能需要摆弄一下。