20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/kkt_shoppe/model_extension.rb', line 20
def attachment(name)
unless self.reflect_on_all_associations(:has_many).map(&:name).include?(:attachments)
has_many :attachments, :as => :parent, :dependent => :destroy, :class_name => 'KktShoppe::Attachment'
end
has_one name, -> { select(:id, :token, :parent_id, :parent_type, :file_name, :file_type, :file_size).where(:role => name) }, :class_name => 'KktShoppe::Attachment', :as => :parent
define_method "#{name}_file" do
instance_variable_get("@#{name}_file")
end
define_method "#{name}_file=" do |file|
instance_variable_set("@#{name}_file", file)
if file.is_a?(ActionDispatch::Http::UploadedFile)
@pending_attachments ||= []
@pending_attachments << {:role => name, :file => file}
else
nil
end
end
end
|