Лучший способ обработки нескольких фотографий в Rails - PullRequest
1 голос
/ 08 декабря 2011

Я использую скрепку.

У меня есть несколько моделей с фотографиями. Продукты, пользователи, ссылки - все могут иметь несколько фотографий.

Итак, я хочу иметь 1 фотомодель. Какие отношения мне нужны здесь?

Я бы предпочел не иметь user_photos, link_photos, product_photos и т. Д. Или это единственный метод?

Возможно ли иметь только 1 фотомодель?

Спасибо!

1 Ответ

1 голос
/ 08 декабря 2011

Я бы использовал полиморфную ассоциацию.

class Photo < ActiveRecord::Base
  belongs_to :photographable, :polymorphic => true
end

class Product < ActiveRecord::Base
  has_many :photos, :as => :photographable
end

class User < ActiveRecord::Base
  has_many :photos, :as => :photographable
end

Для полиморфной ассоциации вашей таблице photos понадобятся два столбца, photographable_type и photographable_id.

...