28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/plugins/acts_as_attachable/lib/acts_as_attachable.rb', line 28
def acts_as_attachable(options = {})
cattr_accessor :attachable_options
self.attachable_options = {}
attachable_options[:view_permission] = options.delete(:view_permission) || "view_#{self.name.pluralize.underscore}".to_sym
attachable_options[:edit_permission] = options.delete(:edit_permission) || "edit_#{self.name.pluralize.underscore}".to_sym
attachable_options[:delete_permission] = options.delete(:delete_permission) || "edit_#{self.name.pluralize.underscore}".to_sym
has_many :attachments, lambda {order("#{Attachment.table_name}.created_on ASC, #{Attachment.table_name}.id ASC")},
**options, as: :container, dependent: :destroy, inverse_of: :container
send :include, Redmine::Acts::Attachable::InstanceMethods
before_save :attach_saved_attachments
after_rollback :detach_saved_attachments
validate :warn_about_failed_attachments
end
|