I''m trying to persuade polymorphic has_many :through methods to work
properly.
Some background - I have users moderating messages & photos. So, the
models are Account, Moderation, Message, and Photo. An account
has_many moderations, and has_many messages and photos through
moderations. I''m just going to talk about messages here for brevity -
no photos.
class Account < ActiveRecord::Base
has_many :moderations
has_many :messages, :through => :moderations, :source => :message,
:conditions => "moderations.content_type =
''Message''"
end
class Moderation < ActiveRecord::Base
belongs_to :account
belongs_to :content, :polymorphic => true
belongs_to :message, :foreign_key => ''content_id''
end
class Message < ActiveRecord::Base
has_many :moderations, :as => :content
has_many :accounts, :through => :moderations
end
This is really close to working properly. I can do @account.messages
or @message.accounts and it''ll work fine. However, trying to use one
of the habtm association methods usually fails. For instance :
>> @account.messages << new_message
NoMethodError: undefined method `message_id='' for #<Moderation:
0x22ed8c8>
I''ve worked around it by adding a message_id= method to the Moderation
class, which simply sets content_id appropriately. But I''m sure
I''m
missing some magic option on the has_many :through relationship that
will fix this.
Any ideas?
Cheers,
Jon
--~--~---------~--~----~------------~-------~--~----~
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---