Dołączanie do modelu innych modeli z obrazkami czy linkami

witam
Możliwe że jest jakis plugin który mógłby trochę zaoszczędzić pisania? Z grubsza chodzi mi o to żeby do różnych modeli można było załączać inne modele zawierające np obrazek czy link do filmiku. Przykładowo jest strona Page i do niej chciałbym załączyć obrazek, ale też strona ma rozdziały więc inny obrazek mógłby być przypisany do rozdziału, podobnie np link do filmiku byłby przykładowo przypisany do rozdziału. Znam paperclip ale to nie wystarczy, ponieważ tutaj nie zawsze będe załączał jakieś fizyczne pliki, ale czasem tak, wiec w którymś z modeli byłby on napewno wykorzystany.
W bazie myślę zastosować has_many, :through, czyli np. dla Page

Page has_many :page_assets has_many :assets, :through => :page_assets, :dependent => :destroy

[code=ruby]class Asset < ActiveRecord::Base
has_many :page_assets
has_many :pages, :through => :page_assets

self.inheritance_column = :asset_type

end[/code]

[code=ruby]class ImageAsset < Asset

has_attached_file :data,
:styles => {…

end[/code]

class VideoAsset < Asset def display tu np kod który tworzy embeded object dla filmiku z YT end end
Nie wiem czy w dobrą stronę kombinuje

attachment_fu

Do czegoś takiego nadałaby się MongoDB (CouchDB? :slight_smile: )

Wczoraj też o tym myślałem przy realizacji jednego z zadań. Niestety MongoMapper, którego używam, jeszcze niezbyt ładnie obsługuje callbacki before_save itd. dla wbudowanych dokumentów i nie dało się łatwo carrierwave przerobić. Ma się to zmienić, bo jest takie zadanie w trackerze MM, w najbliższej przyszłości. Nie jestem pewien jak to jest w Mongoid. Ale moja pierwsza myśl była taka jak Twoja – idealnie się w teorii nadaje :).