From cd887e937382c8cfed9de5cd73d4f4c650a07f8c Mon Sep 17 00:00:00 2001 From: MrZYX <pr0fkill@gmail.com> Date: Sun, 29 May 2011 18:15:46 +0200 Subject: [PATCH] fixed unlike the right way --- app/controllers/likes_controller.rb | 2 +- app/helpers/likes_helper.rb | 2 +- app/models/user.rb | 12 ++++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/controllers/likes_controller.rb b/app/controllers/likes_controller.rb index 46c56fd0b4..fd8e77063c 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 cec61f5b48..c9f9b38016 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 9ff8afecb8..e7b352c75c 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 ####################### -- GitLab