orbit-basic/app/models/design.rb

72 lines
1.4 KiB
Ruby

class Design
include Mongoid::Document
include Mongoid::Timestamps
field :title
field :author
field :intro
field :version
validates_presence_of :title
validates_presence_of :author
mount_uploader :layout, DesignFileUploader
embeds_many :stylesheets
embeds_many :javascripts
embeds_many :images
after_update :destroy_attrs
def javascripts=(*attrs)
self.attribute_models=(attrs<<'javascripts')
end
def stylesheets=(*attrs)
self.attribute_models=(attrs<<'stylesheets')
end
def images=(*attrs)
self.attribute_models=(attrs<<'images')
end
# Update or create the attribute_model records
def attribute_models=(attrs)
#attribute_models = eval(attributes[:type])
# if attributes.original_filename.blank?
attribute_models=eval(attrs.last)
a=attribute_models.build()
a.file=attrs[0]
# else
# attribute_model = attribute_models.detect {|a| a.id.to_s == attributes[:id].to_s }
# attribute_model.update_attributes(attributes)
#end
end
def is_built_in?
self.built_in
end
def is_disabled?
self.disabled
end
def get_enabled_attribute_models
self.attribute_models.excludes('disabled' => true)
end
protected
# Destroy the i18n_variable for each attribute_models if marked to destroy
def destroy_attrs
=begin
attribute_models.each do |a|
if a.should_destroy?
a.destroy_i18n_variable
end
end
=end
end
end