在Rails中的帖子中添加"Like/Different"按钮

Mar*_*tin 3 ruby ruby-on-rails

该网站是一个简单的社区,每个用户都可以创建帖子,用户可以"喜欢"他们或"不喜欢"他们.

我有一个Post和Like模型.目前,我通过post.likes.size列出所有帖子以及每个帖子的大小.喜欢帖子的按钮也有效.

我不知道怎么做是如何根据情况,如果帖子应该显示不同的按钮等(取决于current_user是否已经喜欢该帖子).

类似的模型非常简单:

User_id // current user
Post_id // post to associate
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Tad*_*kas 5

您应该在用户模型中定义关联

如果它是ror 2.*在用户模型中添加方法.它应该是这样的:

has_many :likes
def already_likes?(post)
  self.likes.find(:all, :conditions => ['post_id = ?', post.id]).size > 0
end
Run Code Online (Sandbox Code Playgroud)

假设Like有字段user_id和post_id,当然还有视图

if current_user.already_likes?(@post)
  #add unlike button
end
Run Code Online (Sandbox Code Playgroud)