2012-11-07 33 views
1

這些是我擁有的兩個模型。相關無效在特定情況下失敗

一(:ID,:two_nd_id)和 兩(:ID,:nd_id)

協會

1)一個belongs_to的:兩個:foreign_key => 'two_nd_id',:primary_key > 'nd_id'

2)兩個的has_many:一,:foreign_key => 'two_nd_id',:primary_key => 'nd_id',:依賴=>:抵消

現在,當我嘗試刪除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 =>:銷燬工作正常!

回答

0

請說出每個模型的首要關鍵是什麼。

除此之外:

首先,我不認爲你需要有:primary_key => 'nd_id'

其次,你應該有Two has_many :ones,請注意 「S」

三,爲什麼都是國外密鑰指定爲「two_nd_id」?其中之一是錯誤的。