diff --git a/lib/jam_ruby.rb b/lib/jam_ruby.rb index 2e591d278..8e7a5f960 100644 --- a/lib/jam_ruby.rb +++ b/lib/jam_ruby.rb @@ -24,6 +24,7 @@ require "jam_ruby/models/musician_instrument" require "jam_ruby/models/band_musician" require "jam_ruby/models/user_follower" require "jam_ruby/models/user_following" +require "jam_ruby/models/band_follower" include Jampb diff --git a/lib/jam_ruby/models/band.rb b/lib/jam_ruby/models/band.rb index 965f49c27..dccae5e11 100644 --- a/lib/jam_ruby/models/band.rb +++ b/lib/jam_ruby/models/band.rb @@ -12,6 +12,10 @@ module JamRuby # genres has_and_belongs_to_many :genres, :class_name => "JamRuby::Genre", :join_table => "bands_genres" + # followers + has_many :followers, :class_name => "JamRuby::BandFollower", :foreign_key => "band_id" + has_many :inverse_followers, :through => :followers, :source => :user, :class_name => "JamRuby::Band", :foreign_key => "follower_id" + after_save :limit_to_three_genres def photo_url @@ -37,12 +41,12 @@ module JamRuby band.name = params[:name] end - # name + # website unless params[:website].nil? band.website = params[:website] end - # name + # biography unless params[:biography].nil? band.biography = params[:biography] end @@ -56,7 +60,7 @@ module JamRuby band.genres.delete_all end - # loop through each instrument in the array and save to the db + # loop through each genre in the array and save to the db genres.each do |genre_id| g = Genre.find(genre_id) band.genres << g diff --git a/lib/jam_ruby/models/band_follower.rb b/lib/jam_ruby/models/band_follower.rb new file mode 100644 index 000000000..ba2e43845 --- /dev/null +++ b/lib/jam_ruby/models/band_follower.rb @@ -0,0 +1,11 @@ +module JamRuby + class BandFollower < ActiveRecord::Base + + self.table_name = "bands_followers" + + self.primary_key = 'id' + + belongs_to :band, :class_name => "JamRuby::Band", :foreign_key => "band_id" + belongs_to :user, :class_name => "JamRuby::User", :foreign_key => "follower_id", :inverse_of => :inverse_followers + end +end \ No newline at end of file diff --git a/lib/jam_ruby/models/user.rb b/lib/jam_ruby/models/user.rb index 64c5dd44a..06471df2c 100644 --- a/lib/jam_ruby/models/user.rb +++ b/lib/jam_ruby/models/user.rb @@ -24,10 +24,14 @@ module JamRuby has_many :followers, :class_name => "JamRuby::UserFollower", :foreign_key => "user_id" has_many :inverse_followers, :through => :followers, :source => :user, :class_name => "JamRuby::User", :foreign_key => "follower_id" - # followings + # user followings has_many :followings, :class_name => "JamRuby::UserFollowing", :foreign_key => "follower_id" has_many :inverse_followings, :through => :followings, :source => :user, :class_name => "JamRuby::User", :foreign_key => "user_id" + # band followings + has_many :band_followings, :class_name => "JamRuby::BandFollower", :foreign_key => "follower_id" + has_many :inverse_band_followings, :through => :band_followings, :foreign_key => "band_id" + # favorites (needs Recording model) # friends