44 lines
1.0 KiB
Ruby
44 lines
1.0 KiB
Ruby
|
class AdBanner
|
||
|
include Mongoid::Document
|
||
|
include Mongoid::Timestamps
|
||
|
include Mongoid::MultiParameterAttributes
|
||
|
|
||
|
field :title
|
||
|
field :picture_position
|
||
|
field :post_date,type: Date
|
||
|
field :unpost_date,type: Date
|
||
|
field :context
|
||
|
field :direct_to_after_click,type: Boolean
|
||
|
field :ad_style #TODO Design should explain
|
||
|
|
||
|
|
||
|
before_save :save_or_destroy
|
||
|
|
||
|
embeds_many :ad_images, :cascade_callbacks => true
|
||
|
|
||
|
def new_ad_images=(*attrs)
|
||
|
attrs[0].each do |attr| #Loop by JSs,Themes,Imgs
|
||
|
unless attr[:file].nil?
|
||
|
self.ad_images << AdImage.new(attr)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def existing_ad_images=(*attrs)
|
||
|
attrs[0].each do |attr| #Loop by JSs,Themes,Imgs
|
||
|
ad_image = self.ad_images.find attr[0]
|
||
|
ad_image.update_attributes(attr[1])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def save_or_destroy
|
||
|
self.ad_images.each do |ad_image|
|
||
|
if ad_image.to_save?
|
||
|
ad_image.save
|
||
|
end
|
||
|
if ad_image.to_destroy?
|
||
|
ad_image.destroy
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|