2011-06-14 16:05:12 +00:00
|
|
|
class Album < ActiveRecord::Base
|
2011-06-14 20:01:42 +00:00
|
|
|
belongs_to :artist
|
2011-10-05 11:27:45 +00:00
|
|
|
has_many :tracks, :conditions => ['position > 0'], :order => 'bonus ASC, position ASC', :dependent => :destroy
|
2011-09-26 00:05:46 +00:00
|
|
|
has_many :album_formats
|
|
|
|
has_many :release_formats, :through => :album_formats
|
|
|
|
|
|
|
|
default_scope where(:master => true)
|
2011-11-28 23:22:29 +00:00
|
|
|
after_save :clear_artist_cache
|
2011-09-26 00:05:46 +00:00
|
|
|
|
|
|
|
def self.with_format f
|
|
|
|
joins(:release_formats).where(:release_formats => { :hash => f.to_s })
|
|
|
|
end
|
2011-11-27 12:37:51 +00:00
|
|
|
|
|
|
|
def serialize
|
|
|
|
{
|
|
|
|
name: name,
|
|
|
|
pic_url: pic_url,
|
|
|
|
year: year,
|
|
|
|
tracks: tracks.map(&:serialize)
|
|
|
|
}
|
|
|
|
end
|
2011-11-28 23:22:29 +00:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def clear_artist_cache
|
|
|
|
artist.clear_cache
|
|
|
|
end
|
2011-06-14 16:05:12 +00:00
|
|
|
end
|