jam-cloud/lib/jam_ruby/models/track.rb

60 lines
1.4 KiB
Ruby

module JamRuby
class Track < ActiveRecord::Base
self.table_name = "tracks"
self.primary_key = 'id'
SOUND = %w(mono stereo)
belongs_to :connection, :class_name => "JamRuby::Connection", :inverse_of => :tracks
belongs_to :instrument, :class_name => "JamRuby::Instrument", :inverse_of => :tracks
validates :sound, :inclusion => {:in => SOUND}
def self.index(current_user, music_session_id)
query = Track
.joins(
%Q{
INNER JOIN
connections
ON
connections.music_session_id = '#{music_session_id}'
AND
connections.id = connection_id
AND
connections.user_id = '#{current_user.id}'
INNER JOIN
music_sessions
ON
music_sessions.id = '#{music_session_id}'
AND
music_sessions.user_id = '#{current_user.id}'
}
)
return query
end
def self.save(id, connection_id, instrument_id, sound)
if id.nil?
track = Track.new()
track.connection_id = connection_id
else
track = Track.find(id)
end
unless instrument_id.nil?
track.instrument_id = instrument_id
end
unless sound.nil?
track.sound = sound
end
track.updated_at = Time.now.getutc
track.save
return track
end
end
end