module SimpleFileUploader::ActiveRecord
Public Instance Methods
mount_simple_uploader(column, uploader, options = {})
click to toggle source
Input Params: @required column - [string] the coolumn name in the model the uuid of s3_media_server stored @required uploader - [class] the class of Uploader used for field as uploader
# File lib/simple_file_uploader/active_record.rb, line 15 def mount_simple_uploader(column, uploader, options = {}) uploader.remember_uploader(self, column) uploaders[column.to_sym] = uploader uploader_options[column.to_sym] = options alias_method :read_uploader, :read_attribute alias_method :write_uploader, :write_attribute public :read_uploader public :write_uploader before_save{ _uploaders(column).write_identifier! } after_create { _uploaders(column).on_create } after_destroy { _uploaders(column).on_destroy } after_update{ _uploaders(column).on_update(changes[column].first) if changes[column] } validate do |obj| obj.send(column).errors.each { |error| errors.add(column, error) } end define_method :"#{column}=" do |value| _uploaders(column).column_value = value end define_method :"#{column}" do _uploaders(column) end define_method :"remove_#{column}!" do _uploaders(column).remove save! end define_method :_uploaders do |column| @_simple_mounter_instances ||= {} @_simple_mounter_instances[column] ||= self.class.uploaders[column].new(self, column) end end
uploader_options()
click to toggle source
# File lib/simple_file_uploader/active_record.rb, line 8 def uploader_options @uploader_options ||= superclass.respond_to?(:uploader_options) ? superclass.uploader_options.dup : {} end
uploaders()
click to toggle source
# File lib/simple_file_uploader/active_record.rb, line 4 def uploaders @uploaders ||= superclass.respond_to?(:uploaders) ? superclass.uploaders.dup : {} end