module S3Columns::InstanceMethods

Public Instance Methods

s3_column_upload_on_create() click to toggle source
# File lib/ar_s3_columns/instance_methods.rb, line 3
def s3_column_upload_on_create
  self.class.s3_columns.each do |column_name|
    column_value = self.read_attribute(column_name.to_sym)
    next if column_value.blank?
    marshalled_data = Marshal.dump(column_value)
    key_path = self.class.s3_columns_keys[column_name.to_sym].call(self)
    bucket_name = self.class.s3_columns_buckets[column_name.to_sym]
    write_options = S3Columns.default_s3_write_options || {}
    S3Columns.s3_connection.buckets[bucket_name].objects[key_path].write(marshalled_data, write_options)
    # saves key to column
    write_attribute(column_name.to_sym, key_path)
  end
end