Has_one /has_many具有依赖的destroy,但对键使用不同的名称



所以我正在看某人的代码,其中有以下(意译):

class user
  has_one :connection, :dependent => :destroy
  has_one :second_user, :through => :connection, :class_name => 'User'
end
class connection
  belongs_to :user
  belongs_to :second_user, :class => 'User'
end

如果我有一个连接对象并删除关联的"用户",它可以被很好地销毁。但我也想这样做,如果用户占用'second_user'字段被销毁连接被销毁。我怎样才能在不弄乱太多东西(希望不需要迁移)的情况下无缝地完成这个任务?

谢谢!

注意,单个User可以与两个连接相关联。这意味着在User(作为第二个用户)和Connection之间存在另一个尚未定义的关联。我叫它secondary_connection

class User
  has_one :connection, :dependent => :destroy
  has_one :secondary_connection, :class_name => 'Connection', :foreign_key => :second_user_id, :dependent => :destroy  # Inverse of Connection second_user
  has_one :second_user, :through => :connection, :class_name => 'User'
end

相关内容

  • 没有找到相关文章

最新更新