1. 25 10月, 2015 1 次提交
  2. 27 9月, 2015 1 次提交
    • E
      Fix regression in inverse_of on through associations · ee824c88
      eileencodes 提交于
      `inverse_of` on through associations was accidently removed/caused to
      stop working in commit f8d2899d which was part of a refactoring on
      `ThroughReflection`.
      
      To fix we moved `inverse_of` and `check_validity_of_inverse!` to the
      `AbstractReflection` so it's available to the `ThroughReflection`
      without having to dup any methods. We then need to delegate `inverse_name`
      method in `ThroughReflection`. `inverse_name` can't be moved to
      `AbstractReflection` without moving methods that set the instance
      variable `@automatic_inverse_of`.
      
      This adds a test that ensures that `inverse_of` on a `ThroughReflection`
      returns the correct class name, and the correct record for the inverse
      relationship.
      
      Fixes #21692
      ee824c88
  3. 16 6月, 2014 1 次提交
  4. 11 6月, 2014 1 次提交
  5. 05 6月, 2014 1 次提交
    • L
      Fix inverse associations test · 5b66fba6
      Leandro Facchinetti 提交于
      `InverseHasManyTests#test_parent_instance_should_be_shared_within_create_block_of_new_child`
      was mistakenly the same as
      `InverseHasManyTests#test_parent_instance_should_be_shared_within_build_block_of_new_child`.
      5b66fba6
  6. 14 10月, 2013 1 次提交
  7. 05 10月, 2013 1 次提交
  8. 15 8月, 2013 1 次提交
  9. 13 8月, 2013 1 次提交
  10. 22 6月, 2013 2 次提交
    • N
      do not load all child records for inverse case · 82882d41
      Neeraj Singh 提交于
      currently `post.comments.find(Comment.first.id)` would load all
      comments for the given post to set the inverse association.
      
      This has a huge performance penalty. Because if post has 100k
      records and all these 100k records would be loaded in memory
      even though the comment id was supplied.
      
      Fix is to use in-memory records only if loaded? is true. Otherwise
      load the records using full sql.
      
      Fixes #10509
      82882d41
    • N
      fix bad test by making number that fits for integer · 6741a0a1
      Neeraj Singh 提交于
      PR https://github.com/rails/rails/pull/10566 had to be reverted
      because after applying the fix test
      "test_raise_record_not_found_error_when_invalid_ids_are_passed"
      started failing.
      
      In this test invalid_id is being assigned a really large number
      which was causing following failure when PR #10566 was applied.
      
      ```
      RangeError: bignum too big to convert into `long long'
      SELECT  `interests`.* FROM `interests`
      WHERE `interests`.`man_id` = ? AND `interests`.`id` = ?
      LIMIT 1  [["man_id", 970345987], ["id", 2394823094892348920348523452345]]
      ```
      
      This test is not failing in master because when test code
      `man.interests.find(invalid_id)` is executed then interests
      are fully loaded in memory and no database query is executed.
      
      After PR #10566 was merged then test code
      `man.interests.find(invalid_id)` started executing sql query
      and hence the error.
      
      In case someone is wondering why the second part of query is not
      failing, then that's because the actual query does not require
      any variable substituation where the number is large. In that
      case the sql generate is following.
      
      ```
      SELECT `interests`.* FROM `interests`
      WHERE `interests`.`man_id` = ? AND `interests`.`id`
      IN (8432342, 2390102913, 2453245234523452)  [["man_id", 970345987]]
      ```
      6741a0a1
  11. 19 6月, 2013 2 次提交
    • J
      Revert "Merge pull request #10566 from neerajdotname/10509d" · e47b6dee
      Jon Leighton 提交于
      This reverts commit 2b817a5e, reversing
      changes made to 353a398b.
      
      Conflicts:
      	activerecord/CHANGELOG.md
      
      Reason: the build broke
      e47b6dee
    • N
      do not load all child records for inverse case · 2b73f780
      Neeraj Singh 提交于
      currently `post.comments.find(Comment.first.id)` would load all
      comments for the given post to set the inverse association.
      
      This has a huge performance penalty. Because if post has 100k
      records and all these 100k records would be loaded in memory
      even though the comment id was supplied.
      
      Fix is to use in-memory records only if loaded? is true. Otherwise
      load the records using full sql.
      
      Fixes #10509
      2b73f780
  12. 08 5月, 2013 1 次提交
  13. 02 4月, 2013 2 次提交
  14. 01 4月, 2013 1 次提交
    • M
      fix inverse_of association in block of new child · 44838159
      Michal Cichra 提交于
      This fixes inconsistency when building children of association
      which has inverse_of set properly.
      
      When creating new association object with a block:
      
          parent.association.build do |child|
            child.parent.equal?(parent) # false
          end
      
      So the block the `child.parent` did not point to the same object.
      But when the object is created it points to same instance:
      
          child = parent.association.build
          child.parent.equal?(parent) # true
      44838159
  15. 20 3月, 2013 1 次提交
  16. 02 11月, 2012 1 次提交
    • C
      Fix issue with collection associations and first(n)/last(n) · 694334c3
      Carlos Antonio da Silva 提交于
      When calling first(n) or last(n) in a collection, Active Record was
      improperly trying to set the inverse of instance in case that option
      existed. This change was introduced by
      fdf4eae5.
      
      In such cases we don't need to do that "manually", since the way
      collection will be loaded will already handle that, so we just skip
      setting the inverse association when any argument is given to
      first(n)/last(n).
      
      The test included ensures that these scenarios will have the inverse of
      instance set properly.
      
      Fixes #8087, Closes #8094.
      
      Squashed cherry-pick from d37d40b2 and c368b660.
      
      Conflicts:
      	activerecord/CHANGELOG.md
      	activerecord/lib/active_record/associations/collection_association.rb
      694334c3
  17. 18 8月, 2012 1 次提交
  18. 28 7月, 2012 1 次提交
  19. 27 4月, 2012 3 次提交
  20. 17 1月, 2012 1 次提交
  21. 29 12月, 2011 1 次提交
  22. 07 6月, 2011 1 次提交
  23. 05 6月, 2011 1 次提交
    • J
      Refactor Active Record test connection setup. Please see the... · 253bb6b9
      Jon Leighton 提交于
      Refactor Active Record test connection setup. Please see the RUNNING_UNIT_TESTS file for details, but essentially you can now configure things in test/config.yml. You can also run tests directly via the command line, e.g. ruby path/to/test.rb (no rake needed, uses default db connection from test/config.yml). This will help us fix the CI by enabling us to isolate the different Rails versions to different databases.
      253bb6b9
  24. 18 2月, 2011 1 次提交
  25. 08 1月, 2011 1 次提交
  26. 05 1月, 2011 1 次提交
  27. 04 1月, 2011 1 次提交
    • J
      Remove undocumented feature from has_one where you could pass false as the... · 40afcade
      Jon Leighton 提交于
      Remove undocumented feature from has_one where you could pass false as the second parameter to build_assoc or create_assoc, and the existing associated object would be untouched (the foreign key would not be nullified, and it would not be deleted). If you want behaviour similar to this you can do the following things:
      
      * Use :dependent => :nullify (or don't specify :dependent) if you want to prevent the existing associated object from being deleted
      * Use has_many if you actually want multiple associated objects
      * Explicitly set the foreign key if, for some reason, you really need to have multiple objects associated with the same has_one. E.g.
      
          previous = obj.assoc
          obj.create_assoc
          previous.update_attributes(:obj_id => obj.id)
      40afcade
  28. 23 11月, 2010 1 次提交
  29. 17 11月, 2010 1 次提交
  30. 19 7月, 2010 1 次提交
  31. 19 5月, 2010 1 次提交
  32. 29 12月, 2009 1 次提交
  33. 28 12月, 2009 3 次提交