Help with Favourite model

I have a User model, a Favourite model, a Film model and a Song model.
I would like o achieve user favourite films and user favourte songs with
databse associations, using just a Favourite model. Which will be the
best way? How should define those models?

John S. wrote:

I have a User model, a Favourite model, a Film model and a Song model.
I would like o achieve user favourite films and user favourte songs with
databse associations, using just a Favourite model. Which will be the
best way? How should define those models?

I assume the best way will be something like that:
create_table :favorites do |t|
t.integer :user_id
t.references :favorable, :polymorphic => true
t.timestamps
end

User.rb
has_many :favorites
has_many :favorables, :through => :favorites

Film.rb
has_many :favorites, :as => :favorable
has_many :favoriting_users, :through => :favorites, :source => :user

Song.rb
has_many :favorites, :as => :favorable
has_many :favoriting_users, :through => :favorites, :source => :user