Novecento Normal
Novecento Demibold
Novecento Bold
02/08/2012
Pour tout liker
Aujourd’hui une gem pour permettre à un model d’en liker d’autres. Pour la mise en place de la gem cela se passe comme ceci :
initializers/likeable.rb
Likeable.setup do |likeable|
likeable.redis = Redis.new
end
On prépare le model qui peut liker :
class User
include Likeable::UserMethods
end
Et on ajoute des models qui peuvent se faire liker :
class Comment
include Likeable
end
Maintenant vous avez accès à tout ce qu’il faut comme méthodes :
comment = Comment.find(15)
comment.like_count # => 0
current_user.like!(comment) # => #<Likeable::Like ... >
comment.like_count # => 1
comment.likes # => [#<Likeable::Like ... >]
comment.likes.last.user # => #<User ... >
comment.likes.last.created_at # => Wed Jul 27 19:34:32 -0500 2011
comment.liked_by?(current_user) # => true
current_user.all_liked(Comment) # => [#<Comment ...>, ...]
liked_comment = Likeable.find_by_resource_id("Comment", 15)
liked_comment == comment # => true
Et pour finir, tout est stocké avec Redis :)
Le lien utile
Sur une idée de @msadouni