A Video , a Song and a Article can have many Tags . And each Tag can also have many Video, Songs or Articles . So, I have 5 models: Video, Song, Article, Tag and Taggings .
These models are:
class Video < ActiveRecord::Base has_many :tags, :through => :taggings end class Song < ActiveRecord::Base has_many :tags, :through => :taggings end class Article < ActiveRecord::Base has_many :tags, :through => :taggings end class Tag < ActiveRecord::Base has_many :articles has_many :videos has_many :songs belong_to :taggings, :polymorphic => true #is this correct? end
Taggings Database Taggings
create_table "taggings", :force => true do |t| t.integer "tag_id" t.string "taggable_type" t.integer "taggable_id" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false end
Taggings Model:
class Taggings < ActiveRecord::Base belongs_to :tag
The problem I'm worried about is, do I have the correct model definitions ( belongs_to , has_many ?)? My gut tells me that I missed something. I have seen many articles, and I am embarrassing them.
source share