2010-09-14 39 views
0

我期望在rails v2.3.8中發現一個bug,但我在這裏問我是否在做一些愚蠢的事情。Rails嵌套模型屬性'acceptersted_attributes_for'創建時可能出現的錯誤

我有一個3層深的嵌套模型,描述了一個裝運(即裝運 - >箱子 - >箱子中的行項目)。貨件和箱子是同時創建的,但訂單已存在,因此訂單被放置後,訂單項只需與其所在的箱子關聯。

創建方法shipment給我這個錯誤:

ActiveRecord::RecordNotFound (Couldn't find VendorOrderLine with ID=3 for VendorShippingBox with ID=) 

,並顯示SQL它試圖執行:

SELECT * FROM "vendor_order_lines" WHERE ("vendor_order_lines"."id" IN ('3','4')) AND ("vendor_order_lines".vendor_shipping_box_id = NULL) 

注意vendor_shipping_box_id不加引號。

如果我運行此查詢在控制檯:

VendorOrderLine.find(:all, :conditions=>["vendor_order_lines.id IN ('3', '4') AND vendor_order_lines.vendor_shipping_box_id IS NULL"]) 

我得到預期的結果。奇怪的是,update方法工作正常

我如果需要的話可以發佈更多細節,但軌道生成的SQL應該在報價vendor_shipping_box_id,這是什麼引起的ActiveRecord錯誤,正確嗎?或者我錯過了什麼?

(注意,我的模型/控制器/視圖是每Ryan Bates的RailsCasts EP中的所有設置:196 & 197)


更新:我更新到Rails 3.0,以及創建方法按預期工作。所以這絕對是一個錯誤。報告以前版本軟件的錯誤是否正確?我在哪裏可以找到軌道錯誤/錯誤報告的文檔?

回答

0

我已經運行過這個相同的問題,但沒有找到修復/解決辦法,但現在我們無法升級到rails 3或更新版本的rails 2.3。