I thought I had this nailed but.. now I''m seeing spots.. I''ve included my models below, feel free to ignore them. I''m really just after an example that works. I couldnt find one on the wiki... which is fair enough considering Ricks patch: http://dev.rubyonrails.org/changeset/4022 that fixed them only went through 5 days ago.. Cheers -henster *********************************************************************************** class Topic < ActiveRecord::Base has_many :item_collection, :class_name => "Grouping", :foreign_key => "item_id" has_many :group_collection, :class_name => "Grouping", :foreign_key => "group_id" has_many :groups, :through => :group_colletion has_many :items, :through => :item_collection end ********************************************************************************** *********************************************************************************** class Grouping < ActiveRecord::Base belongs_to :item, :class_name => "Topic", :foreign_key => "item_id" belongs_to :group, :class_name => "Topic", :foreign_key => "group_id" end *********************************************************************************
I thought I had this nailed but.. now I''m seeing spots.. I''ve included my models below, feel free to ignore them. I''m really just after an example that works. I couldnt find one on the wiki... which is fair enough considering Ricks patch: http://dev.rubyonrails.org/changeset/4022 that fixed them only went through 5 days ago.. Cheers -henster *********************************************************************************** class Topic < ActiveRecord::Base has_many :item_collection, :class_name => "Grouping", :foreign_key => "item_id" has_many :group_collection, :class_name => "Grouping", :foreign_key => "group_id" has_many :groups, :through => :group_colletion has_many :items, :through => :item_collection end ********************************************************************************** *********************************************************************************** class Grouping < ActiveRecord::Base belongs_to :item, :class_name => "Topic", :foreign_key => "item_id" belongs_to :group, :class_name => "Topic", :foreign_key => "group_id" end ********************************************************************************* -- Posted with http://DevLists.com. Sign up and save your time!
I''m assuming that the spelling difference for group_collection was only when type the email. Could you tell us what isn''t working? Rick''s change added some very useful error messages that should help you out. Anyway, I think your has_many :through relationships might be backwards. has_many :groups, :through => :group_collection This is going to connect to the groupings table and specify the group_id, since you specified that as the foreign key in the has_many :group_collection relationship. It will then try to join back to the topics table using group_id again, because you name the through relationship "groups". It tries to find a relationship on the join table that is the singular or plural of the name of the through relationship, unless you specify the :source option. Do you really need a join model in this case? If your join model doesn''t do anything besides hold the keys to the topics table, then a regular HABTM may suit you better. You may want to read through http://dev.rubyonrails.org/ticket/4289 to see some background for changeset 4022. -Lee On 29 Mar 2006 21:09:46 -0000, Henry Turner < devlists-rubyonrails@devlists.com> wrote:> > I thought I had this nailed but.. now I''m seeing spots.. > > I''ve included my models below, feel free to ignore them. I''m really > just after an example that works. I couldnt find one on the wiki... > which is fair enough considering Ricks patch: > http://dev.rubyonrails.org/changeset/4022 that fixed them only went > through 5 days ago.. > > Cheers > -henster > > > *********************************************************************************** > class Topic < ActiveRecord::Base > > has_many :item_collection, :class_name => "Grouping", :foreign_key > => "item_id" > has_many :group_collection, :class_name => "Grouping", > :foreign_key => "group_id" > > has_many :groups, :through => :group_colletion > has_many :items, :through => :item_collection > > end > > ********************************************************************************** > > > *********************************************************************************** > class Grouping < ActiveRecord::Base > > belongs_to :item, > :class_name => "Topic", > :foreign_key => "item_id" > > belongs_to :group, > :class_name => "Topic", > :foreign_key => "group_id" > end > > ********************************************************************************* > > > > -- > Posted with http://DevLists.com. Sign up and save your time! > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060329/b87cca8f/attachment.html
Hey Lee, Thanks for the reply. It was nice to soak up some backstory from the ticket. I see you had a bit of grief with it. Just playing around with the new features and seeing whats possible. I can see there is no need for :through in this example, but is there a good reason to change it? Easier to expand later if needs be. It looks like performance should be the same... I see these kind of things are being said elsewhere so I''ll keep an eye out. Cheers -h On Wednesday, March 29, 2006, at 3:55 PM, Lee Marlow wrote:>I''m assuming that the spelling difference for group_collection was >only when >type the email. Could you tell us what isn''t working? Rick''s change added >some very useful error messages that should help you out. > >Anyway, I think your has_many :through relationships might be backwards. > >has_many :groups, :through => :group_collection > >This is going to connect to the groupings table and specify the group_id, >since you specified that as the foreign key in the has_many >:group_collection relationship. It will then try to join back to >the topics >table using group_id again, because you name the through relationship >"groups". It tries to find a relationship on the join table that is the >singular or plural of the name of the through relationship, unless you >specify the :source option. > >Do you really need a join model in this case? If your join model >doesn''t do >anything besides hold the keys to the topics table, then a regular >HABTM may >suit you better. > >You may want to read through http://dev.rubyonrails.org/ticket/4289 to see >some background for changeset 4022. > >-Lee > >On 29 Mar 2006 21:09:46 -0000, Henry Turner < >devlists-rubyonrails@devlists.com> wrote: >> >> I thought I had this nailed but.. now I''m seeing spots.. >> >> I''ve included my models below, feel free to ignore them. I''m really >> just after an example that works. I couldnt find one on the wiki... >> which is fair enough considering Ricks patch: >> http://dev.rubyonrails.org/changeset/4022 that fixed them only went >> through 5 days ago.. >> >> Cheers >> -henster >> >> >> ******************************************************************* >>**************** >> class Topic < ActiveRecord::Base >> >> has_many :item_collection, :class_name => "Grouping", :foreign_key >> => "item_id" >> has_many :group_collection, :class_name => "Grouping", >> :foreign_key => "group_id" >> >> has_many :groups, :through => :group_colletion >> has_many :items, :through => :item_collection >> >> end >> >> ******************************************************************* >>*************** >> >> >> ******************************************************************* >>**************** >> class Grouping < ActiveRecord::Base >> >> belongs_to :item, >> :class_name => "Topic", >> :foreign_key => "item_id" >> >> belongs_to :group, >> :class_name => "Topic", >> :foreign_key => "group_id" >> end >> >> ******************************************************************* >>************** >> >> >> >> -- >> Posted with http://DevLists.com. Sign up and save your time! >> _______________________________________________ >> Rails mailing list >> Rails@lists.rubyonrails.org >> http://lists.rubyonrails.org/mailman/listinfo/rails >> > > >_______________________________________________ >Rails mailing list >Rails@lists.rubyonrails.org >http://lists.rubyonrails.org/mailman/listinfo/rails >-- Posted with http://DevLists.com. Sign up and save your time!