所以我正在看某人的代码,其中有以下(意译):
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