From f328c319ed4fc33cdbba2a68e3fcfaec18a881ec Mon Sep 17 00:00:00 2001 From: magnolia-fan Date: Mon, 26 Sep 2011 04:05:46 +0400 Subject: [PATCH] Album associations --- app/models/music/album.rb | 11 ++++++++++- app/models/music/album_format.rb | 2 +- app/models/music/release_format.rb | 1 + app/models/music/track.rb | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/models/music/album.rb b/app/models/music/album.rb index 42b8c24..4aff93b 100644 --- a/app/models/music/album.rb +++ b/app/models/music/album.rb @@ -1,5 +1,14 @@ class Album < ActiveRecord::Base belongs_to :artist has_many :tracks, :order => 'bonus ASC, position ASC', :dependent => :destroy - has_many :local_brainz_releases, :class_name => 'LocalBrainz::Release', :dependent => :destroy + has_many :local_brainz_cached_releases, :class_name => 'LocalBrainz::CachedRelease', :dependent => :destroy + has_many :album_formats + has_many :release_formats, :through => :album_formats + + default_scope where(:master => true) + scope :with_non_masters, where(:master => [true, false]) + + def self.with_format f + joins(:release_formats).where(:release_formats => { :hash => f.to_s }) + end end diff --git a/app/models/music/album_format.rb b/app/models/music/album_format.rb index 6dacf18..85c79c5 100644 --- a/app/models/music/album_format.rb +++ b/app/models/music/album_format.rb @@ -1,4 +1,4 @@ class AlbumFormat < ActiveRecord::Base belongs_to :album - belongs_to :format + belongs_to :release_format end diff --git a/app/models/music/release_format.rb b/app/models/music/release_format.rb index f4db089..1432864 100644 --- a/app/models/music/release_format.rb +++ b/app/models/music/release_format.rb @@ -1,2 +1,3 @@ class ReleaseFormat < ActiveRecord::Base + has_many :albums, :through => :album_formats end diff --git a/app/models/music/track.rb b/app/models/music/track.rb index 6819b0a..c13468d 100644 --- a/app/models/music/track.rb +++ b/app/models/music/track.rb @@ -1,4 +1,5 @@ class Track < ActiveRecord::Base belongs_to :album + has_many :track_artists has_many :artists, :through => :track_artists end