From 2103d54fe43a7c2c111b940c3b06a40d578e3cb1 Mon Sep 17 00:00:00 2001 From: Raphael Sofaer Date: Mon, 13 Jun 2011 17:14:00 -0700 Subject: [PATCH] Without loaded? I was confused by the liked? and like_for methods. --- app/models/user.rb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 477c96f8a..6d37cc530 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -171,20 +171,21 @@ class User < ActiveRecord::Base end def liked?(post) - if self.like_for(post) - return true + if post.likes.loaded? + !(like_for(post).nil?) else - return false + Like.exists?(:author_id => self.person.id, :post_id => post.id) end end def like_for(post) - [post.likes, post.dislikes].each do |likes| - likes.each do |like| - return like if like.author_id == self.person.id + if post.likes.loaded? + [post.likes, post.dislikes].each do |likes| + likes.detect { |l| l.author_id == self.person.id } end + else + return Like.where(:post_id => post.id, :author_id => self.person.id).first end - return nil end ######### Mailer #######################