Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #7859 from ernie/fix-collection-associations-with-…

…select

Fix has_many assocation w/select load after create
  • Loading branch information...
commit 269adaec211c41301271f02a597d1ed170deb717 2 parents 1c534c6 + 9f3b8cd
Aaron Patterson tenderlove authored
2  activerecord/lib/active_record/associations/collection_association.rb
View
@@ -414,7 +414,7 @@ def merge_target_lists(persisted, memory)
persisted.map! do |record|
if mem_record = memory.delete(record)
- (record.attribute_names - mem_record.changes.keys).each do |name|
+ ((record.attribute_names & mem_record.attribute_names) - mem_record.changes.keys).each do |name|
mem_record[name] = record[name]
end
8 activerecord/test/cases/associations/join_model_test.rb
View
@@ -231,6 +231,14 @@ def test_has_many_with_piggyback
assert_equal "2", categories(:sti_test).authors_with_select.first.post_id.to_s
end
+ def test_create_through_has_many_with_piggyback
+ category = categories(:sti_test)
+ ernie = category.authors_with_select.create(:name => 'Ernie')
+ assert_nothing_raised do
+ assert_equal ernie, category.authors_with_select.detect {|a| a.name == 'Ernie'}
+ end
+ end
+
def test_include_has_many_through
posts = Post.all.merge!(:order => 'posts.id').to_a
posts_with_authors = Post.all.merge!(:includes => :authors, :order => 'posts.id').to_a
Please sign in to comment.
Something went wrong with that request. Please try again.