class Submission < ApplicationRecord belongs_to :form after_create :append_to_spreadsheet validates_presence_of :data def data=(value) sanitized_data = {} value.each do |key, value| sanitized_data[key] = submission_value(value) end write_attribute(:data, sanitized_data) end def submission_value(value) if value.to_s.downcase == 'tinyforms_now' Time.now.utc.to_formatted_s(:rfc822) else value.to_s end end def append_to_spreadsheet result = form.append(data) update_column(:appended_at, Time.current) if result.updates.updated_rows > 0 end end