Release model in rails

This commit is contained in:
magnolia-fan 2011-04-04 23:08:49 +04:00
parent a804d30ce8
commit a31f5b1221
2 changed files with 19 additions and 15 deletions

View File

@ -6,6 +6,6 @@ class ArtistController < ApplicationController
@albums.each do |a| @albums.each do |a|
rg_ids << a.id rg_ids << a.id
end end
@releases = Release.getReleases(rg_ids, true, true);
end end
end end

View File

@ -1,19 +1,23 @@
class Release < ActiveRecord::Base class Release < ActiveRecord::Base
set_table_name 'musicbrainz.bh_release' set_table_name 'musicbrainz.bh_release'
def self.getReleases(release_groups, group_by_release = false, only_official = false) def self.getReleases(release_groups, group_by_release = false, only_official = false)
Release.all(:conditions => ['release_group IN(?) AND '. (only_official ? 'AND release_tyepe=1' : 'release_type IS NOT NULL'), release_groups], :order => 'date ASC, id ASC') releases = Release.all(
:conditions => [
if ($group_by_release) { 'release_group IN(?) AND '+
$g_releases = array(); (only_official ? 'release_type=1' : 'release_type IS NOT NULL'), release_groups
foreach ($releases as $release) { ],
if (!isset($g_releases[$release['release_group']])) { :order => 'date ASC, id ASC'
$g_releases[$release['release_group']] = array(); )
} if group_by_release
$g_releases[$release['release_group']][$release['id']] = $release; g_releases = {}
} releases.each do |release|
return $g_releases; if g_releases[release.release_group].nil?
} else { g_releases[release.release_group] = {}
return $releases; end
} g_releases[release.release_group][release.id] = release
end
return g_releases
end
return releases
end end
end end