Commit 7d1581b1
Changed files (3)
app
models
spec
models
app/models/creation.rb
@@ -47,4 +47,12 @@ class Creation < ActiveRecord::Base
def is_liked_by(user)
favorites.any? { |favorite| favorite.user == user }
end
+
+ def liked_by(user)
+ if is_liked_by(user)
+ favorites.find { |favorite| favorite.user == user }
+ else
+ favorites.create({:user_id => user.id})
+ end
+ end
end
app/models/user.rb
@@ -11,12 +11,8 @@ class User < ActiveRecord::Base
acts_as_tagger
default_scope order("created_at DESC")
- def add_favorite( creation )
- if self.already_likes(creation)
- favorites.find { |favorite| favorite.user == self }
- else
- creation.favorites.create({:user_id => self.id})
- end
+ def add_favorite(creation)
+ creation.liked_by(self)
end
def already_likes(creation)
spec/models/user_spec.rb
@@ -96,6 +96,7 @@ describe User do
result.should == favorite
end
end
+
context "when they have not liked it before" do
let(:result) { sut.add_favorite(cake) }