Rails - 活动记录 - 使用forein_key进行订购,无需任何连接

时间:2016-06-23 15:51:42

标签: ruby-on-rails ruby activerecord

我目前正在使用ActiveRecord在我的rails应用程序中执行查询。

我实际上需要订购我的记录,但有时这个订单是用外键制作的(或者在某些情况下用" n + 2"键 - 我不知道#39;我真的知道这个名字。)

事实是这个顺序是动态的,我无法真正解决所有可能性,也不能使用join方法(ActiveRecord)因为我的表之间的关系不同。 ..

是否可以在没有任何ActiveRecord::Relation的情况下使用外键订购join个对象?

此外,我还要指出,在我的order之前,在where(s)中,我恢复了一些外国记录,但没有join。这是未来的变化,现在我试着通过上面解释的内容得到我想要的东西。

问候。

1 个答案:

答案 0 :(得分:1)

你不能使用includes吗?

如果您的查询使用外键并且您不会使用联接,我将无法看到许多其他解决方案...

您可以尝试这样的事情:

query = Base_Model.includes(:model_with_first_foreign_key, model_with_other_foreign_key: [:model_with_nested_foreign_key, :model_with_other_nested_foreign_key])

在此之后,您应该能够访问所有包含模型的任何属性,只要它们的关系被正确定义:

result = query.order(:any_property)