以下是app中的rails 3查询:
Order.where('id IN (?)',ContractItem.where(contract_id: @contract.id).select('contract_item_id'))
这是contract_item表中唯一的记录:
如记录所示,@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
。然而,我们得到的并不是什么。我们认为必须返回一个空数组。上面的代码有什么问题吗?
答案 0 :(得分:2)
您正在返回一个数组,但它是一个具有单个列的ContractItem对象数组,而不是数组数组。
尝试改为......
Order.where('id IN (?)',ContractItem.where(contract_id: @contract.id).pluck(:contract_item_id))