Module: Beef::Has::Assets::ClassMethods

Defined in:
lib/has_assets.rb

Instance Method Summary collapse

Instance Method Details

#has_assetsObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/has_assets.rb', line 9

def has_assets
  has_many :assetings, :as => :assetable, :dependent => :delete_all
  has_many :assets, :through => :assetings, :order => 'assetings.id'
  
  # Override the default asset_ids method
  define_method("asset_ids=") do |new_value|
    ids = (new_value || []).reject { |nid| nid.blank? }
    ids.collect!{ |id| id.to_i}
    logger.debug "ASSETS the same #{ids == self.asset_ids} | IDS #{ids} | #{self.asset_ids}"
    return if ids == self.asset_ids
    self.assets.clear
    ids.each_index do |idx|
      self.assets << Asset.find(ids[idx])
    end
  end
end