On Dec 19, 8:26 am, "Felipe Vergara" <[email protected]> wrote: > Some help please!! > class Article < ActiveRecord::Base > has_and_belongs_to_many :tags, :join_table => :articles_tags_users [...] > user = User.new > tag = Tag.find(id) > article = Article.find(id) > user.tag << tag > user.article << article > > all this creates 2 tuples on the database articles_tags_users instead of one > with all the values > > Do somebody knows how to do this?
I hope someone will correct me if I'm wrong, but I believe you will need to use has_many :through for this case -- HABTM isn't meant for 3- way joins as far as I know. You'll need something like this: class Article < ActiveRecord::Base has_many :correlations has_many :tags, :through => :correlations has_many :users, :through => :correlations end (similarly for User and Tag) class Correlation < ActiveRecord::Base belongs_to :article belongs_to :tag belongs_to :user end Then your sample controller code would become something like user = User.new tag = Tag.find(id) article = Article.find(id) user.correlations << Correlation.new(:tag => tag, :article => article) Does that help? Best, -- Marnen Laibow-Koser [email protected] http://www.marnen.org --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

