class Design include Mongoid::Document include Mongoid::Timestamps include ParserLayout field :author, :type => String field :intro, :type => String field :title, :type => String field :version, :type => String mount_uploader :zip_file, AssetUploader has_one :site has_one :css_default, as: :css, :autosave => true, :dependent => :destroy has_one :layout, :autosave => true, :dependent => :destroy has_one :css_reset, :autosave => true, :dependent => :destroy has_one :thumb, :autosave => true, :dependent => :destroy has_many :images, as: :imgs, :autosave => true, :dependent => :destroy has_many :javascripts, as: :js, :autosave => true, :dependent => :destroy has_many :pages has_many :screenshots, :autosave => true, :dependent => :destroy has_many :themes, :autosave => true, :dependent => :destroy accepts_nested_attributes_for :images, :allow_destroy => true accepts_nested_attributes_for :javascripts, :allow_destroy => true accepts_nested_attributes_for :screenshots, :allow_destroy => true accepts_nested_attributes_for :themes, :allow_destroy => true validates_presence_of :author, :title after_save :parse_css_for_images protected def parse_css_for_images self.css_default.parse_urls self.themes.each do |theme| theme.parse_urls end parse_body_for_images(self) end end