jam-cloud/ruby/lib/jam_ruby/models/instrument.rb

69 lines
2.1 KiB
Ruby
Raw Normal View History

2012-10-28 02:35:28 +00:00
module JamRuby
class Instrument < ActiveRecord::Base
MAP_ICON_NAME = {
"accordion" => "accordion",
2014-04-03 04:19:39 +00:00
"acoustic guitar" => "acoustic_guitar",
"banjo" => "banjo",
2014-04-03 04:19:39 +00:00
"bass guitar" => "bass_guitar",
"cello" => "cello",
"clarinet" => "clarinet",
"computer" => "computer",
"default" => "default",
"drums" => "drums",
2014-04-03 04:19:39 +00:00
"electric guitar" => "electric_guitar",
"euphonium" => "euphonium",
"flute" => "flute",
2014-04-03 04:19:39 +00:00
"french horn" => "french_horn",
"harmonica" => "harmonica",
"keyboard" => "keyboard",
"mandolin" => "mandolin",
"oboe" => "oboe",
"other" => "other",
2014-04-03 04:19:39 +00:00
"piano" => "piano",
"saxophone" => "saxophone",
"trombone" => "trombone",
"trumpet" => "trumpet",
"tuba" => "tuba",
"ukulele" => "ukelele",
2014-04-03 04:19:39 +00:00
"upright bass" => "upright_bass",
"viola" => "viola",
"violin" => "violin",
2014-04-03 04:19:39 +00:00
"voice" => "voice"
}
2012-10-28 02:35:28 +00:00
self.primary_key = 'id'
2012-10-29 10:45:47 +00:00
# users
has_many :musician_instruments, :class_name => "JamRuby::MusicianInstrument"
has_many :players, :through => :musician_instruments
2012-12-15 07:11:04 +00:00
has_many :tracks, :class_name => "JamRuby::Track", :inverse_of => :instrument
2013-01-22 19:15:52 +00:00
has_many :recorded_tracks, :class_name => "JamRuby::RecordedTrack", :inverse_of => :instrument
2012-10-29 10:45:47 +00:00
# music sessions
2014-05-06 13:34:38 +00:00
has_and_belongs_to_many :music_sessions, :class_name => "JamRuby::ActiveMusicSession", :join_table => "genres_music_sessions"
2013-03-15 04:22:31 +00:00
# teachers
has_and_belongs_to_many :teachers, :class_name => "JamRuby::Teacher", :join_table => "teachers_instruments"
2013-03-15 04:22:31 +00:00
def self.standard_list
return Instrument.where('instruments.popularity > 0').order('instruments.description ASC')
2013-03-15 04:22:31 +00:00
end
def self.jam_track_list
sql = "SELECT DISTINCT instrument_id FROM jam_track_tracks WHERE instrument_id IS NOT NULL"
Instrument.where("instruments.id IN (#{sql})")
.order('instruments.description ASC')
end
def icon_name
MAP_ICON_NAME[self.id]
end
2014-02-11 15:53:20 +00:00
def to_s
description
end
2012-10-28 02:35:28 +00:00
end
2013-01-15 02:13:45 +00:00
end