如何使用mutiple包括导轨中的func?

时间:2017-12-19 06:33:06

标签: ruby-on-rails postgresql ruby-on-rails-4

所以我有两行代码(它们在同一个ApplicationRecord文件中):

includes(xxx: :xxx).joins(xxx::xxx).where(options)

includes({xxx: :xxx}, {xxx: :xxx}).where("complex query string")

在第一行,其中的选项是哈希

在第二行,其中有一个复杂的查询字符串

如果我以这种方式运行,包含的第二个结果将覆盖第一个结果

我想在第一行和第二行结果上做一个联合并获得最终结果,但我无法弄清楚如何做到这一点。 我试图将复杂的查询放入选项中,但我不认为rails理解它。 谁能告诉我该怎么办?

感谢。

1 个答案:

答案 0 :(得分:0)

您无法使用includes内的where数据,因为包含不会向查询添加任何内容。这些是无关的事情。相反,请使用references。例如:

User.includes(:posts).where('posts.name = ?', 'example').references(:posts)

有关详细信息,请参阅文档:https://apidock.com/rails/ActiveRecord/QueryMethods/includes

没有详细说明可以提供更详细的答案。