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.

Full class name STI not included in eager loading

#465

When eager loading a polymorphic association, it does not care about the full class name (with module) in the associated type column (attached_type in the following example).

Example:

class Shared::Address

belongs_to :attached, :polymorphic => true

end

class Company::Base

has_one :address, :as => :attached, :class_name => 'Shared::Address'

end

When saving the association the attached_type column in the addresses table says correctly Company::Base.

Eager loading the company's address however produces this query: Shared::Address::Load (0.000539) SELECT "addresses".* FROM "addresses" WHERE ("addresses"."attached_id" IN (1) and "addresses"."attached_type" = 'Base')

Attached_type is incorrectly set as "Base" where it should be "Company::Base". Therefore this results in company.address being nil.

Note that only eager load is affected. Loading the association on demand works.

Reported by Christian Weyer · June 21st, 2008 @ 02:15 PM

State: Resolved
Milestone: none
Assigned to: Pratik Pratik
Importance: none

Activity

  1. Joachim Garth
    Joachim Garth
    • Tag set to 2.1, activerecord, bug, eager_loading, patch, tested

    Confirmed; "Wrote a patch" for it... could anybody confirm this?

    June 26th, 2008 @ 06:18 PM

  2. Pratik
    Pratik
    • State changed from new to incomplete
    • Tag changed from 2.1, activerecord, bug, eager_loading, patch, tested to 2.1, activerecord, bug, eager_loading, patch

    Could you please generate the patch using git-format-patch ? Also, the patch is missing tests.

    Thanks.

    June 27th, 2008 @ 04:11 PM

  3. Joachim Garth
    Joachim Garth

    Done and done. :) It's a git format-patch now. Tests are included now, as well.

    June 27th, 2008 @ 07:08 PM

  4. Pratik
    Pratik
    • State changed from incomplete to open

    June 27th, 2008 @ 07:27 PM

  5. Christian Weyer
    Christian Weyer

    This bug seems to be bigger than I first thought. When checking http://rails.lighthouseapp.com/a... I could not find any code changes for eager loading at all?

    I still encounter this bug after applying Josch's patch in other scenarios, not related to polymorphic associations. How comes nobody noticed that? Am I the only one using namespaces?

    June 28th, 2008 @ 04:43 PM

  6. Christian Weyer
    Christian Weyer
    • Title changed from Polymorphic eager load does not care about full class name in <assoc_name>_type column to Full class name STI not included in eager loading

    June 28th, 2008 @ 09:14 PM

  7. Christian Weyer
    Christian Weyer

    Fixed both of the bugs, attached a test. This test does not include tests since Josch's test are already there and working

    June 28th, 2008 @ 11:00 PM

  8. Christian Weyer
    Christian Weyer

    Should not work late a night :)

    I attached a patch, not a test. And this patch does not include tests since Josch's tests are working

    June 28th, 2008 @ 11:01 PM

  9. wildchild
    wildchild

    +1 this patch like a pain suppressor for me :)

    June 29th, 2008 @ 02:10 AM

  10. Joachim Garth
  11. Pratik
    Pratik
    • Assigned user set to Pratik

    July 17th, 2008 @ 01:47 PM

  12. Repository
    Repository
    • State changed from open to Resolved

    (from [a1fcbd971d681e44de5ea33e6a8470ff8b8144c0]) Make sure association preloading works with full STI class name [#465 state:Resolved]

    Signed-off-by: Pratik Naik

    http://github.com/rails/rails/co...

    July 18th, 2008 @ 03:47 AM

  13. Repository
    Repository

    (from [c3aad223321d1897c9e2269b32c3c2da7af814d1]) Make sure association preloading works with full STI class name [#465 Full class name STI not included in eager loading state:Resolved]

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

    August 25th, 2008 @ 09:28 AM