所以我有两行代码(它们在同一个ApplicationRecord文件中):
includes(xxx: :xxx).joins(xxx::xxx).where(options)
includes({xxx: :xxx}, {xxx: :xxx}).where("complex query string")
在第一行,其中的选项是哈希
在第二行,其中有一个复杂的查询字符串
如果我以这种方式运行,包含的第二个结果将覆盖第一个结果
我想在第一行和第二行结果上做一个联合并获得最终结果,但我无法弄清楚如何做到这一点。 我试图将复杂的查询放入选项中,但我不认为rails理解它。 谁能告诉我该怎么办?
感谢。
答案 0 :(得分:0)
您无法使用includes
内的where
数据,因为包含不会向查询添加任何内容。这些是无关的事情。相反,请使用references
。例如:
User.includes(:posts).where('posts.name = ?', 'example').references(:posts)
有关详细信息,请参阅文档:https://apidock.com/rails/ActiveRecord/QueryMethods/includes
没有详细说明可以提供更详细的答案。