Ruby has_many没有破坏

时间:2016-10-28 13:36:22

标签: ruby-on-rails ruby model reference foreign-key-relationship

我面临模特问题。我有3个型号:用户,地址和住所

用户:

class User < ActiveRecord::Base
  acts_as_paranoid

  has_one :address, dependent: :destroy #should be has_many but not current problem
  has_many :objects, dependent: :destroy
  has_many :residences, dependent: :destroy
end

地址

class Address < ActiveRecord::Base
  acts_as_paranoid

  belongs_to :user, inverse_of: :address
  belongs_to :residence, inverse_of: :address

  validates :user, presence: true

住所:

class Residence < ActiveRecord::Base
  belongs_to :user

  has_one :address, through: :user, dependent: :nullify
  has_many :objects, through: :user
end

问题是当我想要删除用户或住所时系统因外键而无法删除住所,并且系统告诉我由于仍然参考地址表中的住所而无法完成。

当我删除住所时,我不想删除与住宅相关联的地址,地址应仅删除用户删除(这​​就是为什么我尝试使用nullify没有运气。

我需要使用连接表而不是住宅和地址之间的引用吗?

由于

0 个答案:

没有答案