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.

