On May 11, 10:33 pm, Perry Smith <[email protected]> wrote:
> I'm way back at Rails 2.3.5.  I can move up to 2.3.11 if anyone thinks
> that will help.  My problem is this:
>
>     class Entity < ActiveRecord::Base
>       belongs_to :item, :polymorphic => true
>     end
>
>     class Name < ActiveRecord::Base
>       has_one :entity, :class_name => "Entity", :as => :item
>     end
>
>     class Team < Name
>     end
>
> The has_one does not work.  It searches for the base_class of item
> "Name" instead of the class "Team".  I see where these is a "trick"
> where you can change item_type= in the documentation but that causes me
> other problems.

What exactly is "not working" here? Polymorphic associations are
designed to store the class that's needed to retrieve the associated
record - storing the STI subclass instead of the base would mean that
the STI type was stored in *two* locations (both in the 'type' field
on the record, and in 'item_type' on the associated Entity record)
which is generally regarded as *bad*.

Note that base-class finds still return objects of subclasses (this
isn't C++ :) ):

Name.find(some_team_id) # => a Team object

--Matt Jones

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to