more work
This commit is contained in:
parent
8a54a0a116
commit
2d697d029b
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue