diff --git a/app/controllers/likes_controller.rb b/app/controllers/likes_controller.rb index 46c56fd0b453747a1ea0a893590ae9cd0108e340..fd8e77063ccd51e00a1702686d68e0652c1e3f6f 100644 --- a/app/controllers/likes_controller.rb +++ b/app/controllers/likes_controller.rb @@ -32,7 +32,7 @@ class LikesController < ApplicationController end def destroy - if @like = Like.where(:post_id => params[:post_id], :author_id => current_user.person.id).first + if @like = Like.where(:id => params[:id], :author_id => current_user.person.id).first current_user.retract(@like) else respond_to do |format| diff --git a/app/helpers/likes_helper.rb b/app/helpers/likes_helper.rb index cec61f5b48a5a12fc71e7566e6d2da0434ed40e3..c9f9b3801675f4229af2bcd70e42b6af7579f69b 100644 --- a/app/helpers/likes_helper.rb +++ b/app/helpers/likes_helper.rb @@ -10,7 +10,7 @@ module LikesHelper def like_action(post, current_user=current_user) if current_user.liked?(post) - link_to t('shared.stream_element.unlike'), like_path(:post_id => post.id, :id => 'xxx'), :method => :delete, :class => 'unlike', :remote => true + link_to t('shared.stream_element.unlike'), like_path(current_user.like_for(post)), :method => :delete, :class => 'unlike', :remote => true else link_to t('shared.stream_element.like'), likes_path(:positive => 'true', :post_id => post.id ), :method => :post, :class => 'like', :remote => true end diff --git a/app/models/user.rb b/app/models/user.rb index 9ff8afecb85b0702fa4a95734f34ab0ff10a6f60..e7b352c75cdd7fa297895a04995de78b020218c8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -188,12 +188,20 @@ class User < ActiveRecord::Base end def liked?(post) + if self.like_for(post) + return true + else + return false + end + end + + def like_for(post) [post.likes, post.dislikes].each do |likes| likes.each do |like| - return true if like.author_id == self.person.id + return like if like.author_id == self.person.id end end - return false + return nil end ######### Mailer #######################