Sha256: 1a548a69f61735c776ece5048ce331a07c47beadff244bc335b6f80c752ee448
Contents?: true
Size: 887 Bytes
Versions: 1
Compression:
Stored size: 887 Bytes
Contents
module ActAsStorage extend ActiveSupport::Concern included do has_many :uploaded_files, as: :storage before_update :recalculate_files_data after_update :recalculate_files_data_for_user after_destroy :recalculate_files_data_for_user end def recalculate_files_data sum = 0 files = self.uploaded_files.active files.each{ |f| sum += f.file_file_size } self.files_size = sum self.files_count = files.size end def recalculate_files_data_for_user user = self.user storages = user.storages.active | user.recipes.active | user.pages.active | user.articles.active files_size = 0 files_count = 0 storages.each do |s| files_size += s.files_size files_count += s.files_count end user.files_size = files_size user.files_count = files_count user.save(:validation => false) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
the_storages-0.0.1 | app/models/concerns/act_as_storage.rb |