0

假设我有以下内容:

<% if @like = current_user.likes.find_by_post_id(@post.id) %>

这是检查用户是否喜欢一个帖子——到底发生了什么?

我的猜测:

  1. 在页面加载时,Rails 会提取所有喜欢该帖子的用户的 ID,并检查其中一个 ID 是否与 current_user 的 ID 匹配

  2. 在页面加载时,Rails 会提取用户喜欢的帖子的 ID,并执行与上述 #1 相同的操作(但相反)

提前致谢


法利在下面的评论中回答了问题。应该知道但不知何故超出了我的脑海的东西

4

2 回答 2

0

任何 SQL 引擎都可以使用多个条件进行搜索:

SELECT * FROM likes WHERE user_id=? and post_id=?
于 2013-10-02T00:24:16.060 回答
0

我的理解是你应该得到这样的喜欢

<% if @like = current_user.posts.where(post_id: @post.id).likes %>

因此,它应该为您提供 post_id => @post.id 的当前用户的帖子,然后获取该帖子的喜欢。

于 2013-10-02T00:26:25.557 回答