# Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/ module ApplicationModel::HasAttachments extend ActiveSupport::Concern included do after_create :attachments_buffer_check after_update :attachments_buffer_check end =begin get list of attachments of this object item = Model.find(123) list = item.attachments returns # array with Store model objects =end def attachments Store.list(object: self.class.to_s, o_id: id) end =begin store attachments for this object item = Model.find(123) item.attachments = [ Store-Object1, Store-Object2 ] =end def attachments=(attachments) self.attachments_buffer = attachments # update if object already exists return if !(id&.nonzero?) attachments_buffer_check end private def attachments_buffer @attachments_buffer_data end def attachments_buffer=(attachments) @attachments_buffer_data = attachments end def attachments_buffer_check # do nothing if no attachment exists return 1 if attachments_buffer.nil? # store attachments article_store = [] attachments_buffer.each do |attachment| article_store.push Store.add( object: self.class.to_s, o_id: id, data: attachment.content, filename: attachment.filename, preferences: attachment.preferences, created_by_id: created_by_id, ) end attachments_buffer = nil end end