所以,我在看它有别人的代码如下(意译):
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”字段被破坏的连接被破坏。 我怎样才能实现这个美丽的无缝没有太多的(希望没有迁移需要)搞乱?
谢谢!
请注意,一个用户可以使用两个连接有关。 这意味着有其中用户之间存在另一个关联(作为第二用户),并连接其还没有定义。 我称之为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
文章来源: has_one/has_many with dependent destroy but using a different name for the key