class Foo has_many :bars has_many :bazs end class Bar belongs_to :foo has_many :bazs, :through => :foo end class Baz belongs_to :foo end @foo = Foo.find(1) @bar = @foo.bars.build(:foo => @foo) # Why even passing the @foo instance explicitly in, # I my through association for bazs doesn't get populated? @foo.bazs => [1, 2, 3] @bar.bazs => []