嘿伙计们另一个铁路问题,
目前有一个集合,它是发票系统的订单项。如果我添加已存在的项目,我想增加订单项的数量。目前我正在使用存在?查询集合,但无论密钥如何,它似乎都会返回。
我使用的外键是item_id,所以我尝试invoice_items.exists?(:item_id => item.id)
这没有返回,因此我将其更改为invoice_items.find(:conditions => ["item_id == ?", item.id)
并且我收到了一个无法在没有invoiceItem ID的情况下搜索的返回。
想法?
答案 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.first
,Model.last
,Model.all
。那样你就知道自己会得到什么。