polymorphic associations and STI

If a Problem with a polymorphic association and STI.

class Message < ActiveRecord::Base   belongs_to :source, :polymorphic => true end

class Letter < Message end

class Post < ActiveRecord::Base   has_many :messages, :as => :source end

Post.first.messages works fine Post.first.letters

Throws "NoMethodError: undefined method `letters' for #<Post:0xb6671ef0>"

Thanks for your help.

lg xinu

Hello

If I'm not completely wrong what you want is just STI:

class Message < ActiveRecord::Base    belongs_to :post end

class Letter < Message end

class Post < ActiveRecord::Base    has_many :messages    has_many :letters end

For each inherited model of Message that you access by Post.inherited_modelname(s) (like in Post.first.letters) you need a has_many declaration in the Post class.

Regards, T.

For each inherited model of Message that you access by Post.inherited_modelname(s) (like in Post.first.letters) you need a has_many declaration in the Post class.

Thanks. I thought has_many creates automatically the relation to the subclasses.

Nope. But note that if you have a post that's associated to both Letters and Messages, you'll still get both out of the @post.messages association.

--Matt Jones