Rails嵌套模型属性'accepts_nested_attributes_for'可能在创建时出错

时间:2010-09-14 14:11:39

标签: ruby-on-rails nested-attributes

我希望在rails v2.3.8中发现一个错误,但我在这里问我以防万一我做了些蠢事。

我有一个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方法工作正常

如果需要,我可以发布更多详细信息,但是生成的rails应该在引号中有vendor_shipping_box_id,这就是导致ActiveRecord错误的原因,对吗?或者我错过了什么?

(注意,我的模型/控制器/视图都是根据Ryan Bates的RailsCasts ep:196& 197设置的)


更新:我更新到Rails 3.0,并且create方法按预期工作。所以这绝对是一个错误。报告以前版本软件的错误是否合适?我在哪里可以找到关于rails bug / bug报告的文档?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但还没有找到修复/解决方法,我们暂时无法升级到rails 3或更新版本的rails 2.3。