Это зависит от того, хотите ли вы модель соединения или нет. Модель соединения позволяет хранить дополнительную информацию относительно связи между двумя другими моделями. Например, возможно, вы хотите записать отметку времени, когда статья была помечена. Эта информация будет записана по модели соединения.
Если вам не нужна модель объединения, вы можете использовать простую has_and_belongs_to_many
ассоциацию:
class Article < ActiveRecord::Base
has_and_belongs_to_many :tags
end
class Tag < ActiveRecord::Base
has_and_belongs_to_many :articles
end
С Tagging
моделью соединения (что лучше, чем ArticleTag
), это будет выглядеть так:
class Article < ActiveRecord::Base
has_many :taggings
has_many :tags, :through => :taggings
end
class Tag < ActiveRecord::Base
has_many :taggings
has_many :articles, :through => :taggings
end
class Tagging < ActiveRecord::Base
belongs_to :article
belongs_to :tag
end