嵌套集合中存在无法找不到ID?

时间:2010-07-09 02:10:25

标签: ruby-on-rails ruby collections

嘿伙计们另一个铁路问题,

目前有一个集合,它是发票系统的订单项。如果我添加已存在的项目,我想增加订单项的数量。目前我正在使用存在?查询集合,但无论密钥如何,它似乎都会返回。

我使用的外键是item_id,所以我尝试invoice_items.exists?(:item_id => item.id)

这没有返回,因此我将其更改为invoice_items.find(:conditions => ["item_id == ?", item.id)并且我收到了一个无法在没有invoiceItem ID的情况下搜索的返回。

想法?

2 个答案:

答案 0 :(得分:1)

conditions => ["item_id == ?", item.id

应该是

conditions => ["item_id = ?", item.id]

所以你的查询看起来像这样

invoice_items.find(:all).conditions => ["item_id = ?", item.id]

答案 1 :(得分:-1)

你应该只需要做任何一次

invoice_items.all(:conditions => ["item_id == ?", item.id])

OR

invoice_items.first(:conditions => ["item_id == ?", item.id])

您可以使用语法

invoice_items.all(:conditions => {:item_id => item.id})

如果您要使用model.find命令,则第一个参数必须是:all:first:last或您要搜索的主键。这就是为什么我通常只在我搜索ID时才使用Model.find,否则我会使用Model.firstModel.lastModel.all。那样你就知道自己会得到什么。