うまくいけば、誰かがなぜこれが起こっているのか理解できるように助けることができます。私のセットアップ次の場合...新規/ビルド時に外部キーが削除される
@product = Product.find(params[:id])
@new_image = @product.images.new
私は@new_image
をデバッグするとき、それは正しく外部キーセットを持っています。
--- !ruby/object:Image
attributes:
product_id: 1
ただし、保存するときは、product_id
は設定されていません。それは私がそのデバッグ情報にも気づいたときです...
changed_attributes:
product_id:
基本的に私の外部キーを無効にしています。私がビルドを使用する場合、同じこと。そのインスタンスが外部キーを保持していない理由は何ですか?
UPDATE: 私は私の見解では、単に出力debug Product.find(1).images.new
、私が得る場合でも、物事を簡単にするために:
!ruby/object:ProductImage
attributes:
created_at:
product_id: 1
updated_at:
attributes_cache: {}
changed_attributes:
product_id:
destroyed: false
marked_for_destruction: false
new_record: true
previously_changed: {}
readonly: false
あなたは貯蓄をして、あなたの完全なコントローラのコードを投稿することができます、おそらくあなたの 'Product'と' Image'モデルの内容は? –
さて、あなたが投稿した最初の2つの行はどこにありますか? –
私のプロダクトコントローラのshowメソッド – brewster