2013-08-06 5 views
0

Мне было интересно, можно ли иметь несколько моделей, используя одну центральную модель для своих изображений с помощью paperclip. Так, например, у меня была бы фотомодель, которая использовала бы скрепку для хранения своих URL-адресов и т. Д.Несколько моделей и Paperclip

В моем случае у меня есть 2 модели, портфолио и пост, оба из которых имеют форму, позволяющую загружать изображения и другие атрибуты в модель.

Так может обе модели имеют

has_many :photos, :dependent => :destroy 
accepts_nested_attributes_for :photos 

или мне нужно создать отдельные модели для каждой из фотографий, т.е. фото1, фото2, чтобы сделать это? так что модель портфолио подает одну и отправку моделирует другую для своих изображений?

Я просто смотрю, чтобы получить лучшее понимание и держать вещи DRY

Благодарности

ответ

1

Вы можете использовать полиморфные ассоциации, где более одна модель будет иметь много фотографий.

http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

http://railscasts.com/episodes/154-polymorphic-association-revised

пример:

Ваша модель будет называться медиа и будет принадлежать mediable, где mediable может быть статья, пользователь, почта, и т.д ..:

belongs_to :mediable, ploymorphic: true

Пользователь, статья, сообщение модели или другая:

has_many :medias, as: mediable

+0

спасибо за ответ, я могу задать еще один вопрос, пожалуйста ... если я назвал свою модель, чтобы сохранить все изображения MEDIA, то в любое время я хочу другое модель, чтобы иметь возможность использовать эту модель, я делаю has_many: medias, as: mediable, как вы заявили? – Richlewis

+0

есть. это правда – rmagnum2002

+0

ОК, а что, если моя модель называется Photo? его медиа -> разумный переход, который не уверен ... существует ли конкретное соглашение об именах? будет ли фотография фотореалистичной? – Richlewis

Смежные вопросы