选择轨道查询不返回数组

时间:2014-08-01 21:53:23

标签: ruby-on-rails

以下是app中的rails 3查询:

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

这是contract_item表中唯一的记录:

enter image description here

如记录所示,@contract.id等于1,我们希望ContractItem.where(contract_id: @contract.id).select('contract_item_id')返回数组[2]。 因此Order.where('id IN (?)',ContractItem.where(contract_id: @contract.id).select('contract_item_id'))应该返回order#2。然而,我们得到的并不是什么。我们认为必须返回一个空数组。上面的代码有什么问题吗?

1 个答案:

答案 0 :(得分:2)

您正在返回一个数组,但它是一个具有单个列的ContractItem对象数组,而不是数组数组。

尝试改为......

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