1

这是我拥有的两个模型。

一(:id, :two_nd_id) 和二(:id, :nd_id)

协会

1)一个belongs_to :two, :foreign_key => 'two_nd_id', :primary_key => 'nd_id'

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”?其中之一是错误的。

于 2014-03-21T06:00:34.700 回答