Question

In my Rails app I have three models, Projects, BlogPosts and Images. Projects and BlogPosts can have many linked images and an image can be linked to a Project, a BlogPost or both.

What is the best way of setting up the associations to make this work in Rails?

Was it helpful?

Solution

I'd tease out the habtm into a separate model class, ImageLink. Then you'd get:

Project
  has_many :image_links, :as => :resource
BlogPost
  has_many :image_links, :as => :resource
ImageLink
  belongs_to :image
  belongs_to :resource, :polymorphic => true
Image:
  has_many :image_links
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top