more work

This commit is contained in:
Mike Slemmer 2013-01-22 14:03:23 -08:00
parent 8a54a0a116
commit 2d697d029b
4 changed files with 14 additions and 21 deletions

View File

@ -1,14 +0,0 @@
module JamRuby
class MusicianRecording < ActiveRecord::Base
self.table_name = "musicians_recordings"
attr_accessible :user_id, :recording_id
# musicians
has_many :musicians, :through => :musician_recordings, :class_name => "JamRuby::User"
belongs_to :user, :class_name => "JamRuby::User", :foreign_key => "user_id"
belongs_to :recording, :class_name => "JamRuby::Recording", :foreign_key => "recording_id"
end
end

View File

@ -14,8 +14,9 @@ module JamRuby
validates :sound, :inclusion => {:in => SOUND}
# Copy an ephemeral track to create a saved one. Some fields are ok with defaults
def self.create_from_track(track)
def self.create_from_track(track, recording)
recorded_track = self.new
recorded_track.recording = recording
recorded_track.user_id = track.connection.user.id
recorded_track.instrument_id = track.instrument_id
recorded_track.sound = track.sound

View File

@ -3,7 +3,8 @@ module JamRuby
self.primary_key = 'id'
has_many :musician_recordings, :class_name => "JamRuby::MusicianRecording"
has_and_belongs_to_many :users, :class_name => "JamRuby::User"
belongs_to :owner, :class_name => "JamRuby::User", :inverse_of => :owned_recording
belongs_to :band, :class_name => "JamRuby::Band", :inverse_of => :recording
has_many :recorded_tracks, :class_name => "JamRuby::RecordedTrack", :foreign_key => :recording_id
@ -32,12 +33,17 @@ module JamRuby
recording = Recording.new
music_session.connections.each do |connection|
recording.musician_recordings << MusicianRecording.create(user_id: connection.user.id, recording_id: recording.id)
recording.users << connection.user
connection.tracks.each do |track|
RecordedTrack.create_from_track(track)
RecordedTrack.create_from_track(track, recording)
end
end
music_session.genres.each do |genre|
recording.genres << genre
end
# Note that I believe this can be nil.
recording.band_id = music_session.band_id
end
@ -189,4 +195,4 @@ module JamRuby
end
=end
end
end
end

View File

@ -24,8 +24,8 @@ module JamRuby
has_many :bands, :through => :band_musicians, :class_name => "JamRuby::Band"
# recordings
has_many :musician_recordings, :class_name => "JamRuby::MusicianRecording", :foreign_key => "user_id"
has_many :recordings, :through => :musician_recordings, :class_name => "JamRuby::Recording"
has_many :owned_recordings, :class_name => "JamRuby::Recording"
has_and_belongs_to_many :recordings, :class_name => "JamRuby::Recording"
# user likers (a musician has likers and may have likes too; fans do not have likers)
has_many :likers, :class_name => "JamRuby::UserLiker", :foreign_key => "user_id", :inverse_of => :user