Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

Add magic encoding comment to generated files

#865

This is a patch related to this thread in rubyonrails-core.

In a has many association count_records basically counts by SQL. If there are no children in the database it assumes that's enough to say there are no children at all. That's not necessarily the case because the association could have new records in @target.

There are several ways to observe this behaviour, for example rendering a collection that has only new records (via #build) would render nothing at all.

This minimal test depicts the issue as well:


post = Post.create
post.comments.build
post.comments.size # => 1
post.comments.size # => 0

The fix turns out to be simple. I've added a regression test as well.

The documentation I mention in a comment will eventually be merged from this patch in docrails.

Reported by Xavier Noria · August 19th, 2008 @ 11:54 PM

State: resolved
Milestone: 2.x
Assigned to: Jeremy Kemper Jeremy Kemper
Importance: none

Activity

  1. Xavier Noria
    Xavier Noria

    Patch updated with Fred's proposal. That one is better because we certainly can assert loaded anyway.

    August 20th, 2008 @ 12:22 AM

  2. Frederick Cheung
    Frederick Cheung

    Looks good to me, tests pass. Perhaps the assert should assert that the size is 1 (or is that already covered by existing tests ?

    August 20th, 2008 @ 11:33 AM

  3. Xavier Noria
    Xavier Noria

    Yeah, the test assumes size1 is correct because there are unit tests for #size in test_build and test_collection_size_after_building.

    August 20th, 2008 @ 11:55 AM

  4. Tarmo Tänav
    Tarmo Tänav

    I don't think it's necessary to refer to google groups threads in a comment. Either explain the issue in a comment (if it really needs explaining) or don't add a comment. When the patch is commited the added code will already be tied to the commit (git annotate) which will refer to this ticket which already refers to the google groups thread.

    Other than that, +1

    August 20th, 2008 @ 06:49 PM

  5. Repository
    Repository
    • State changed from new to resolved

    (from [a970f916fb1e05376733e2d42d9bcc2b873af355]) Fix has_many#count_records. [#865 Add magic encoding comment to generated files state:resolved]

    Signed-off-by: Pratik Naik pratiknaik@gmail.com http://github.com/rails/rails/co...

    August 21st, 2008 @ 03:51 PM

  6. Repository
    Repository

    (from [0048f558e69cfc2675552dd31ea773b2b8271e9b]) Fix has_many#count_records. [#865 Add magic encoding comment to generated files state:resolved]

    Signed-off-by: Pratik Naik pratiknaik@gmail.com http://github.com/rails/rails/co...

    August 25th, 2008 @ 09:31 AM

  7. Ryan Bigg
    Ryan Bigg

    Automatic cleanup of spam.

    October 21st, 2010 @ 03:36 AM

  8. Jeff Kreeftmeijer
  9. Jeff Kreeftmeijer
  10. bingbing
  11. bingbing