Sha256: 26199d297836623953d646e90affbf91cb8b96303ba96e5d07f93b0a926c7dee
Contents?: true
Size: 1.17 KB
Versions: 68
Compression:
Stored size: 1.17 KB
Contents
module Technoweenie # :nodoc: module AttachmentFu # :nodoc: module Backends # Methods for DB backed attachments module DbFileBackend def self.included(base) #:nodoc: Object.const_set(:DbFile, Class.new(ActiveRecord::Base)) unless Object.const_defined?(:DbFile) base.belongs_to :db_file, :class_name => '::DbFile', :foreign_key => 'db_file_id' end # Creates a temp file with the current db data. def create_temp_file write_to_temp_file current_data end # Gets the current data from the database def current_data db_file.data end protected # Destroys the file. Called in the after_destroy callback def destroy_file db_file.destroy if db_file end # Saves the data to the DbFile model def save_to_storage if save_attachment? (db_file || build_db_file).data = temp_data db_file.save! self.class.update_all ['db_file_id = ?', self.db_file_id = db_file.id], ['id = ?', id] end true end end end end end
Version data entries
68 entries across 68 versions & 2 rubygems