HABTM 3 table relation

Some help please!!
class Article < ActiveRecord::Base
has_and_belongs_to_many :tags, :join_table => :articles_tags_users
has_and_belongs_to_many :users, :join_table => :articles_tags_users

end

class Tag < ActiveRecord::Base

has_and_belongs_to_many :articles, :join_table => :articles_tags_users

has_and_belongs_to_many :users, :join_table => :articles_tags_users

end

class User < ActiveRecord::Base

has_and_belongs_to_many :articles, :join_table => :articles_tags_users

has_and_belongs_to_many :tags, :join_table => :articles_tags_users

end

then in the controller

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?

Thanks !

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,

that worked thank you very much!