Module: S3Columns::InstanceMethods

Defined in:
lib/ar_s3_columns/instance_methods.rb

Instance Method Summary collapse

Instance Method Details

#s3_column_upload_on_createObject



3
4
5
6
7
8
9
10
11
12
13
14
15
# 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