diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 79b73cc61..bf154d85f 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb @@ -71,7 +71,7 @@ class CommentsController < ApplicationController if @post @comments = @post.comments.includes(:author => :profile).order('created_at ASC') respond_with do |format| - format.json { render :json => @post.comments.as_api_response(:backbone), :status => 200 } + format.json { render :json => @comments.as_api_response(:backbone), :status => 200 } format.mobile{render :layout => false} end else diff --git a/app/models/post.rb b/app/models/post.rb index 2657df5ba..13533ee8f 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -64,14 +64,6 @@ class Post < ActiveRecord::Base def raw_message; ""; end def mentioned_people; []; end - # gives the last three comments on the post - def last_three_comments - return if self.comments_count == 0 - # DO NOT USE .last(3) HERE. IT WILL FETCH ALL COMMENTS AND RETURN THE LAST THREE - # INSTEAD OF DOING THE FOLLOWING, AS EXPECTED (THX AR): - self.comments.order('created_at DESC').limit(3).includes(:author => :profile).reverse! - end - def self.excluding_blocks(user) people = user.blocks.map{|b| b.person_id} scope = scoped diff --git a/lib/diaspora/commentable.rb b/lib/diaspora/commentable.rb index a603c1835..f0404adcd 100644 --- a/lib/diaspora/commentable.rb +++ b/lib/diaspora/commentable.rb @@ -11,9 +11,12 @@ module Diaspora end # @return [Array] - def last_three_comments - self.comments.order('created_at DESC').limit(3).includes(:author => :profile).reverse - end + def last_three_comments + return if self.comments_count == 0 + # DO NOT USE .last(3) HERE. IT WILL FETCH ALL COMMENTS AND RETURN THE LAST THREE + # INSTEAD OF DOING THE FOLLOWING, AS EXPECTED (THX AR): + self.comments.order('created_at DESC').limit(3).includes(:author => :profile).reverse + end # @return [Integer] def update_comments_counter diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index 157d0c919..a22089388 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -215,36 +215,6 @@ describe Post do end end - describe '#comments' do - it 'returns the comments of a post in created_at order' do - post = bob.post :status_message, :text => "hello", :to => 'all' - created_at = Time.now - 100 - - # Posts are created out of time order. - # i.e. id order is not created_at order - alice.comment 'comment a', :post => post, :created_at => created_at + 10 - eve.comment 'comment d', :post => post, :created_at => created_at + 50 - bob.comment 'comment b', :post => post, :created_at => created_at + 30 - alice.comment 'comment e', :post => post, :created_at => created_at + 90 - eve.comment 'comment c', :post => post, :created_at => created_at + 40 - - post.comments.map(&:text).should == [ - 'comment a', - 'comment b', - 'comment c', - 'comment d', - 'comment e', - ] - post.comments.map(&:author).should == [ - alice.person, - bob.person, - eve.person, - eve.person, - alice.person, - ] - end - end - describe 'Likeable#update_likes_counter' do before do @post = bob.post :status_message, :text => "hello", :to => 'all'