我的模型层次结构类似于
class King < ActiveRecord::Base
has_many :castles
end
class Castle < ActiveRecord::Base
belongs_to :king
has_many :residencies
has_many :residents, through: :residencies
end
Castle
和Resident
之间的多对多关联(为简洁起见省略)由Residency
联接模型支持belongs_to
居民和城堡。这一切都非常熟悉。
我很惊讶地发现,如果我希望能够让所有居住在所有国王城堡中的居民,我实际上可以宣布
has_many :residents, through: :castles
在我的King
模型中。我从来没有见过has_many through
的这种级联使用,我想知道它是否常见。