Rails v2.3.8でバグが見つかったと思いますが、ばかげたことをしている場合に備えてここで質問しています。
出荷を説明する 3 つの深さのネストされたモデルがあります (つまり、出荷 -> ボックス -> ボックス内の項目)。出荷と輸送箱は同時に作成されますが、品目は注文が行われた時点からすでに存在するため、品目を箱に関連付けるだけで済みます。
create メソッドで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 のバグやバグ報告に関するドキュメントはどこにありますか?