0

我希望在 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 生成的 SQL 应该有vendor_shipping_box_id引号,这就是导致ActiveRecord错误的原因,对吗?还是我错过了什么?

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


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

4

1 回答 1

0

I've run across this same issue but not found a fix/work around yet, we can't upgrade to rails 3 or newer versions of rails 2.3 at this time unfortunately.

于 2011-04-26T15:56:37.093 回答