diff --git a/app/controllers/likes_controller.rb b/app/controllers/likes_controller.rb index 51c9567a1..005cf41a3 100644 --- a/app/controllers/likes_controller.rb +++ b/app/controllers/likes_controller.rb @@ -34,7 +34,7 @@ class LikesController < ApplicationController current_user.retract(@like) respond_to do |format| format.any { } - format.json { render :nothing => true, :status => 204} + format.json{ render :json => @like.parent.as_api_response(:backbone), :status => 202 } end else respond_to do |format| diff --git a/public/javascripts/app/models/post.js b/public/javascripts/app/models/post.js index 6347248f3..8a96169f6 100644 --- a/public/javascripts/app/models/post.js +++ b/public/javascripts/app/models/post.js @@ -45,7 +45,10 @@ app.models.Post = Backbone.Model.extend({ }, unlike : function() { - this.get("user_like").destroy(); + var likeModel = new app.models.Like(this.get("user_like")); + likeModel.url = this.likes.url + "/" + likeModel.id; + + likeModel.destroy(); this.set({ user_like : null }); }, diff --git a/spec/controllers/likes_controller_spec.rb b/spec/controllers/likes_controller_spec.rb index 6832a4c89..1169cb4f3 100644 --- a/spec/controllers/likes_controller_spec.rb +++ b/spec/controllers/likes_controller_spec.rb @@ -117,7 +117,7 @@ describe LikesController do expect { delete :destroy, :format => :json, id_field => @like.target_id, :id => @like.id }.should change(Like, :count).by(-1) - response.status.should == 204 + response.status.should == 202 end it 'does not let a user destroy other likes' do diff --git a/spec/javascripts/app/models/post_spec.js b/spec/javascripts/app/models/post_spec.js index 4eef317cc..d0c3c5191 100644 --- a/spec/javascripts/app/models/post_spec.js +++ b/spec/javascripts/app/models/post_spec.js @@ -59,12 +59,12 @@ describe("app.models.Post", function() { describe("unlike", function(){ it("calls destroy on the likes collection", function(){ var like = new app.models.Like(); - this.post.set({user_like : like}) + this.post.set({user_like : like.toJSON()}) - spyOn(like, "destroy"); + spyOn(app.models.Like.prototype, "destroy"); this.post.unlike(); - expect(like.destroy).toHaveBeenCalled(); + expect(app.models.Like.prototype.destroy).toHaveBeenCalled(); }) })