Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在联接的表上指定条件,如何定义和嵌套条件?_Ruby On Rails_Activerecord - Fatal编程技术网

Ruby on rails 在联接的表上指定条件,如何定义和嵌套条件?

Ruby on rails 在联接的表上指定条件,如何定义和嵌套条件?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,其结果是有许多装置 我想查找包含tool\u id为123的安装和tool\u id为456的安装的所有结果 我知道下面给出了安装tool\u id的123的所有结果: Result.includes(:installations).where(installations: {tool_id: 123}) 因此,我尝试将另一个链接到,但没有成功: Result.includes(:installations).where(installations: {tool_id: 123}).where

其结果是有许多装置

我想查找包含
tool\u id
123
的安装和
tool\u id
456
的安装的所有结果

我知道下面给出了安装
tool\u id
123
的所有结果:

Result.includes(:installations).where(installations: {tool_id: 123})
因此,我尝试将另一个
链接到
,但没有成功:

Result.includes(:installations).where(installations: {tool_id: 123}).where(installations: {tool_id: 456})

正确执行此操作的最佳方法是什么?

结果。包括(:安装)。其中('installations.tool_id in(?),[123456])

我先查找一个,然后查找另一个,然后使用
&
。它奏效了,但我认为这不是最好的办法

Result.includes(:installations).where(installations: {tool_id: 123}) & Result.includes(:installations).where(installations: {tool_id: 456})

我得到了
未知列“installations.tool\u id”
。在
installations
下嵌套
tool_id
时,该语法正确吗?结果包括(:installations)。其中('installations.tool_id in(?)[123456])如果安装表中存在tool_id列,则该语法正确。您想说工具id列是结果表的一部分吗?如果是,则用results.tool_id替换installation.tool_id,安装表中存在
tool_id
。我认为问题可能是结果上没有
installations
列。安装时只有一个
result\u id
,而result
有许多
安装。尽管它适用于
result.includes(:安装)。其中(安装:{tool\u id:123})
,因为ActiveRecord?