module Slices::HasAttachments
Public Instance Methods
_attachment_asset_ids()
click to toggle source
# File lib/slices/has_attachments.rb, line 79 def _attachment_asset_ids attachment_asset_ids = self.class.attachment_fields.collect do |attachments| [send(attachments)].flatten.collect do |attachment| attachment.asset_id end.reject {|i| i.nil? } end.flat_map {|i| i } end
as_json(options = nil)
click to toggle source
Calls superclass method
# File lib/slices/has_attachments.rb, line 59 def as_json options = nil super.merge(attachments_as_json) end
attachment_asset_ids()
click to toggle source
# File lib/slices/has_attachments.rb, line 70 def attachment_asset_ids _attachment_asset_ids.tap do |asset_ids| if respond_to? :slice_attachment_asset_ids asset_ids.concat slice_attachment_asset_ids end asset_ids.uniq! end end
attachments_as_json()
click to toggle source
# File lib/slices/has_attachments.rb, line 63 def attachments_as_json self.class.attachment_fields.inject({}) do |hash, name| hash[name] = send(name).map(&:as_json) hash end end
remove_asset(asset)
click to toggle source
Calls superclass method
# File lib/slices/has_attachments.rb, line 87 def remove_asset(asset) super if defined?(super) asset_id = asset.id self.class.attachment_fields.each do |field_name| send(field_name).each do |attachment| attachment.destroy if attachment.asset_id == asset_id end end end