Commit 6985c8a1

mo k <m@mokhan.ca>
2012-01-07 16:29:49
only display the like button if you have not already liked a creation.
1 parent 0c5d007
Changed files (3)
app
models
views
creations
app/models/user.rb
@@ -8,15 +8,18 @@ class User < ActiveRecord::Base
 
   def like( creation )
     if self.already_likes(creation)
+      logger.info 'already likes creation'
       likes.find { |like| like.user == self }
     else
+      logger.info 'add creation'
       creation.likes.create({:user => self})
     end
   end
 
   def already_likes(creation)
-    likes.any? do |like|
-      like.user == self
-    end
+    Like.where("user_id = ? AND creation_id = ?", self.id, creation.id).exists?
+    # likes.any? do |like|
+    #   like.user == self && like.creation == creation
+    # end
   end
 end
app/views/creations/show.html.erb
@@ -19,7 +19,7 @@
 
 <div class="row">
   <div class="span1">
-    <% if current_user == @creation.user %>
+    <% if current_user == @creation.user || current_user.already_likes(@creation) %>
       &nbsp;
     <% else %>
       <%= button_to "+1", creation_likes_path(:creation_id => @creation.id), :method => :post %>
tags
@@ -269,6 +269,7 @@ YELLOW	doc/api/ActiveSupport/LogSubscriber.html	/^				<dt><a name="YELLOW">YELLO
 abstract_class	doc/api/ActiveRecord/Base.html	/^				<a name="abstract_class"><\/a>$/;"	a
 abstract_class=	doc/api/ActiveRecord/Base.html	/^				<a name="abstract_class="><\/a>$/;"	a
 active_record	doc/api/ActiveRecord/Reflection/MacroReflection.html	/^				<a name="active_record"><\/a>$/;"	a
+already_likes	app/models/user.rb	/^  def already_likes(creation)$/;"	f	class:User
 animateTo	vendor/assets/javascripts/jquery.Jcrop.js	/^    function animateTo(a, callback) \/\/{{{$/;"	f
 animateTo.queueAnimator	vendor/assets/javascripts/jquery.Jcrop.js	/^      function queueAnimator() {$/;"	f
 api.animateTo	vendor/assets/javascripts/jquery.Jcrop.js	/^      setImage: setImage,$/;"	p
@@ -476,7 +477,7 @@ level	doc/api/ActiveSupport/BufferedLogger.html	/^				<a name="level"><\/a>$/;"
 level	doc/api/ActiveSupport/LogSubscriber/TestHelper/MockLogger.html	/^				<a name="level"><\/a>$/;"	a
 level=	doc/api/ActiveSupport/BufferedLogger.html	/^				<a name="level="><\/a>$/;"	a
 level=	doc/api/ActiveSupport/LogSubscriber/TestHelper/MockLogger.html	/^				<a name="level="><\/a>$/;"	a
-likes	app/models/user.rb	/^  def likes( creation )$/;"	f	class:User
+like	app/models/user.rb	/^  def like( creation )$/;"	f	class:User
 limit	doc/api/ActiveRecord/ConnectionAdapters/Column.html	/^				<a name="limit"><\/a>$/;"	a
 limit_value	doc/api/ActiveRecord/QueryMethods.html	/^				<a name="limit_value"><\/a>$/;"	a
 limit_value=	doc/api/ActiveRecord/QueryMethods.html	/^				<a name="limit_value="><\/a>$/;"	a