Sha256: 03250f1a7a12b7e74b3e5d5093b1a58aa88bb908b6eafd53ba4340fc138b3b5c
Contents?: true
Size: 885 Bytes
Versions: 1
Compression:
Stored size: 885 Bytes
Contents
module BannerLite class Banner < ActiveRecord::Base attr_accessor :file validates :url validates :file, if: ->(b){ b.file_name.blank? } before_save :fill_file_name, if: :file after_save :save_file, if: :file after_destroy :remove_file scope :active, ->{ now = Time.zone.now; where(arel_table[:active_from].lteq(now).and(arel_table[:active_until].gt(now))) } def src "/system/#{id}/#{file_name}" end private def base_dir @base_dir ||= Rails.root.join('public', 'system', id.to_s) end def fill_file_name self.file_name = file.original_filename end def remove_file FileUtils.rm_rf(base_dir) end def save_file FileUtils.mkdir(base_dir) unless File.directory?(base_dir) File.open(base_dir + file_name, 'wb'){|f| f.write(file.read) } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
banner_lite-0.0.2 | app/models/banner_lite/banner.rb |