Module: DraftsMethods::InstanceMethods

Defined in:
lib/drafts/drafts.rb

Instance Method Summary collapse

Instance Method Details

#save_draft(user) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/drafts/drafts.rb', line 19

def save_draft user
  return false unless self.new_record?
  draft = Draft.find_by_id(self.draft_id) || Draft.new
  attrs = self.attributes.clone.delete_if { |key, value| self.class.accessible_attributes.deny?(key) }
  cache_attrs = {}
  attrs.each { |attr, val| cache_attrs[attr + "_cache"] = self.send(attr + "_cache") if defined?(CarrierWave) && self.send(attr).is_a?(CarrierWave::Uploader::Base) }
  draft.data = attrs.merge cache_attrs
  draft.name = self.to_s
  draft.target_type = self.class.name
  draft.user_id = user.id
  res = draft.save
  self.draft_id = draft.id if res
  res
end