From 0eb5ae58aa44f46f2af9e90efdc1657e91ec9650 Mon Sep 17 00:00:00 2001 From: Yoong Kang Lim Date: Thu, 20 Nov 2014 00:42:46 +1100 Subject: [PATCH] Renamed member_id column in Follow table to follower_id. Made necessary modifications to models and tests. --- app/models/follow.rb | 12 ++++++------ app/models/member.rb | 4 ++-- ...130555_change_follows_member_id_to_follower_id.rb | 5 +++++ db/schema.rb | 4 ++-- spec/factories/follows.rb | 2 +- spec/models/follow_spec.rb | 2 +- 6 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 db/migrate/20141119130555_change_follows_member_id_to_follower_id.rb diff --git a/app/models/follow.rb b/app/models/follow.rb index e312efc90..b1b011c41 100644 --- a/app/models/follow.rb +++ b/app/models/follow.rb @@ -1,15 +1,15 @@ class Follow < ActiveRecord::Base - attr_accessible :followed_id, :member_id - belongs_to :member + attr_accessible :followed_id, :follower_id + belongs_to :follower, class_name: "Member" belongs_to :followed, class_name: "Member" - validates :member_id, uniqueness: { :scope => :followed_id } + validates :follower_id, uniqueness: { :scope => :followed_id } after_create do Notification.create( :recipient_id => self.followed_id, - :sender_id => self.member_id, - :subject => "#{self.member.login_name} has followed you", - :body => "#{self.member.login_name} has followed you" + :sender_id => self.follower_id, + :subject => "#{self.follower.login_name} has followed you", + :body => "#{self.follower.login_name} has followed you" ) end diff --git a/app/models/member.rb b/app/models/member.rb index 22749491b..c34c2f558 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -27,11 +27,11 @@ class Member < ActiveRecord::Base has_many :photos - has_many :follows + has_many :follows, :class_name => "Follow", :foreign_key => "follower_id" has_many :followed, :through => :follows has_many :inverse_follows, :class_name => "Follow", :foreign_key => "followed_id" - has_many :followers, :through => :inverse_follows, :source => :member + has_many :followers, :through => :inverse_follows, :source => :follower default_scope order("lower(login_name) asc") scope :confirmed, where('confirmed_at IS NOT NULL') diff --git a/db/migrate/20141119130555_change_follows_member_id_to_follower_id.rb b/db/migrate/20141119130555_change_follows_member_id_to_follower_id.rb new file mode 100644 index 000000000..1ac6af7f2 --- /dev/null +++ b/db/migrate/20141119130555_change_follows_member_id_to_follower_id.rb @@ -0,0 +1,5 @@ +class ChangeFollowsMemberIdToFollowerId < ActiveRecord::Migration + def change + rename_column :follows, :member_id, :follower_id + end +end diff --git a/db/schema.rb b/db/schema.rb index e22a2289b..c3a45bf0c 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20141111130849) do +ActiveRecord::Schema.define(:version => 20141119130555) do create_table "account_types", :force => true do |t| t.string "name", :null => false @@ -81,7 +81,7 @@ ActiveRecord::Schema.define(:version => 20141111130849) do add_index "crops_posts", ["crop_id"], :name => "index_crops_posts_on_crop_id" create_table "follows", :force => true do |t| - t.integer "member_id" + t.integer "follower_id" t.integer "followed_id" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false diff --git a/spec/factories/follows.rb b/spec/factories/follows.rb index 711402374..d9bd13616 100644 --- a/spec/factories/follows.rb +++ b/spec/factories/follows.rb @@ -1,6 +1,6 @@ FactoryGirl.define do factory :follow do - member_id 1 + follower_id 1 followed_id 2 end diff --git a/spec/models/follow_spec.rb b/spec/models/follow_spec.rb index f9302c9d3..c1beb68c5 100644 --- a/spec/models/follow_spec.rb +++ b/spec/models/follow_spec.rb @@ -10,7 +10,7 @@ describe Follow do it "sends a notification when a follow is created" do expect { - Follow.create(:member_id => @member1.id, :followed_id => @member2.id) + Follow.create(:follower_id => @member1.id, :followed_id => @member2.id) }.to change(Notification, :count).by(1) end end