2010-07-09 51 views
0

嘿傢伙另一個軌道問題,嵌套集合中存在無法找到沒有ID?

當前有一個集合,是一個發票系統的行項目。如果我添加了已存在的項目,我想增加行項目的數量。目前我正在使用存在?查詢集合,但似乎無論關鍵都會返回。

我使用的外鍵是ITEM_ID,所以我嘗試做invoice_items.exists?(:item_id => item.id)

這不是回來了,所以我把它改成invoice_items.find(:conditions => ["item_id == ?", item.id),我得到了回報,我不能沒有invoiceItem ID搜索。

想法?

+0

究竟什麼是你的兩個查詢(在'存在?'和'的發現?')返回?查看'invoice_items'和'items'或任何外鍵'item_id'實際引用的關係也是有幫助的。 – 2010-07-09 02:14:49

回答

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

應該

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

所以您的查詢看起來像這樣

invoice_items.find(:all).conditions => ["item_id = ?", item.id] 
-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或您正在搜索的主鍵。這就是爲什麼我通常只喜歡使用Model.find只有當我搜索一個ID,否則我使用Model.first,Model.last,Model.all。這樣你就知道你會得到什麼。