如何添加喜欢博客,rails

时间:2016-01-23 16:34:03

标签: ruby-on-rails ruby

我目前正在学习RoR,这可能是一个简单的问题,但我不知道该怎么做。 我刚刚创建了一个简单的博客,按照教程,但我想添加一个喜欢的系统,以便用户可以喜欢(比如在Youtube或Facebook上)某个博客帖子。我该怎么做?

这是我一直在想的: 在我的数据库中添加一个名为“Likes”的新数组,在我的视图中添加一个Like按钮。在我的控制器中添加一个方法,只要有人点击它就会添加1。 我不确定这是否是这样做的方式,因为我对Ruby和Rails是全新的。

1 个答案:

答案 0 :(得分:5)

快速简单的解决方案

使用此 gem 让您快速前进。

如果您打算从头开始实施自己的解决方案,那么这个问题很长

假设您有一个Post模型可以被User模型所喜欢,那么当user喜欢post我们希望在新版本中跟踪它时model / table,我们将其命名为Like。此Like模型属于同时属于UserPost

模特
class Post < ActiveRecord::Base
  has_many :likes

  # like the post
  def like(user)
    likes << Like.new(user: user)
  end

  # unlike the post
  def unlike(user)
    likes.where(user_id: user.id).first.destroy
  end
end

class User < ActiveRecord::Base
  has_many :likes
end

class Like < ActiveRecord::Base
  belongs_to :post
  belongs_to :user
  ## We make sure that one user can only have one like per post
  validates :user_id, uniqueness: {scope: :post_id}
end

#likes table attributes
id
user_id
post_id
用户如何喜欢帖子?
$rails console
> post = Post.first
> user = User.first
> post.like(user)
> post.likes.count #=> 1
> post.unlike(user)
> post.likes.count #=> 0