1

これらは私が持っている2つのモデルです。

One(:id, :two_nd_id) と Two(:id, :nd_id)

協会

1) 1つが :two, :foreign_key => 'two_nd_id', :primary_key => 'nd_id' に属しています

2) 2 つの has_many :one, :foreign_key => 'two_nd_id', :primary_key => 'nd_id', :dependent => :nullify

ここで、Two のオブジェクトを削除しようとすると、エラーが発生します。

ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'one.nd_id' in 'where clause': 
UPDATE `one` SET `two_nd_id` = NULL WHERE `one`.`two_nd_id` = 'xxxxx' AND `one`.`nd_id` IS 
NULL

なぜ'one'.'nd_id' IS NULLチェックされているのかまったくわかりません!手伝ってください。前もって感謝します

注 - :dependent => :destroy はうまくいきました!

4

1 に答える 1

0

各モデルの主キーが実際に最初に何であるかを教えてください。

それ以外:

まず、私はあなたが持つ必要はないと思います:primary_key => 'nd_id'

次に、Two has_many :ones「s」に注意してください。

第三に、両方の外部キーが「two_nd_id」として指定されているのはなぜですか? そのうちの 1 つが間違っています。

于 2014-03-21T06:00:34.700 に答える