依赖无效在特定场景中失败

时间:2012-11-07 06:56:29

标签: ruby-on-rails activerecord ruby-on-rails-3.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 => :抵消

现在,当我尝试删除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 => :毁灭工作得很好!

1 个答案:

答案 0 :(得分:0)

请说明每个型号的主要钥匙是什么。

除此之外:

首先,我认为您不需要:primary_key => 'nd_id'

其次,你应该Two has_many :ones,注意" s"

第三,为什么两个外键都指定为" two_nd_id"?其中一个是错的。