class CampaignTemplate < ActiveRecord::Base CUSTOMIZABLE_ATTR = %i(goal_amount) attr_accessible \ :template_name, :name, # refers to campaign name :tagline, :goal_amount, :goal_amount_dollars, # accessor: translated into goal_amount (cents) :main_image, :remove_main_image, # for carrierwave :video_url, :vimeo_video_id, :youtube_video_id, :summary, :body, :end_datetime, :goal_customizable, :nonprofit_id attr_accessor :end_datetime attr_accessor :goal_amount_dollars has_many :campaigns belongs_to :nonprofit mount_uploader :main_image, CampaignTemplateMainImageUploader before_validation do if self.goal_amount_dollars.present? self.goal_amount = (self.goal_amount_dollars.gsub(',','').to_f * 100).to_i end self end def customizable_attribute?(attribute_name) CUSTOMIZABLE_ATTR.include? attribute_name.to_sym end def customizable_attributes_list CUSTOMIZABLE_ATTR end def create_campaign_params excluded = %w( id template_name created_at updated_at ) attributes.except!(*excluded) end end