I’ve created 3 models:
- Article: contains an article
- Tag: contains tags
- ArticleTag: meant for associating a many-to-one tags to article relationship. It contains a tag_id and an article_id.
The problem I’m having is I’m fairly new to the active record technology and I don’t understand the proper way to define everything. Currently, which I think is wrong, is I have a
ArticleTag
belongs_to :article
belongs_to :tag
Now, from here my thought was to then add
Article
:has_many :tag
I’m not sure if im approaching this correctly at all. Thanks for the help!
It depends whether you want a join model or not. A join model lets you hold extra information against the association between two other models. For example, perhaps you want to record a timestamp of when the article was tagged. That information would be recorded against the join model.
If you don’t want a join model, then you could use a simple
has_and_belongs_to_manyassociation:With a
Taggingjoin model (which is a better name thanArticleTag), it would look like this: