Ruby on rails 在rails中选择查询不返回数组

Ruby on rails 在rails中选择查询不返回数组,ruby-on-rails,Ruby On Rails,以下是应用程序中的rails 3查询: Order.where('id IN (?)',ContractItem.where(contract_id: @contract.id).select('contract_item_id')) 以下是合同项目表中的唯一记录: 如记录所示,@contract.id等于1,我们希望contractem.where(contract\u id:@contract.id)。选择('contract\u item\u id')返回数组[2]。 因此,Order

以下是应用程序中的rails 3查询:

Order.where('id IN (?)',ContractItem.where(contract_id: @contract.id).select('contract_item_id'))
以下是合同项目表中的唯一记录:

如记录所示,
@contract.id
等于1,我们希望
contractem.where(contract\u id:@contract.id)。选择('contract\u item\u id')
返回数组[2]。
因此,
Order.where('id IN(?)、contractionItem.where(contract\u id:@contract.id)。选择('contract\u item\u id'))
应返回
Order\2
。然而,我们所得到的是一无所有。我们认为必须返回一个空数组。上面的代码有什么问题吗?

您得到的是一个数组,但它是一个包含单个列的压缩项对象数组,而不是一个数字数组

试试看

Order.where('id IN (?)',ContractItem.where(contract_id: @contract.id).pluck(:contract_item_id))

或者使用
pulk
方法,
contractem.where(contract\u id:@contract.id)。pulk(:contract\u item\u id)
是的,@Iceman很好!不需要返回整个记录。我将修改我的答案。这是一篇关于Pull and select的文章。