Rails获取数据的确切方式(has_many / belongs_to)

时间:2013-10-02 00:18:24

标签: ruby-on-rails

假设我有以下内容:

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

正在检查用户是否喜欢帖子 - 究竟发生了什么?

我的猜测:

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

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

  3. 提前致谢


    Farley在下面的评论中回答了问题。应该知道的东西但不知何故已经过了我的脑袋

2 个答案:

答案 0 :(得分:0)

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

SELECT * FROM likes WHERE user_id=? and post_id=?

答案 1 :(得分:0)

我所理解的你应该取这样的喜欢

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

所以,它应该给你当前用户的帖子,其中post_id =&gt; @ post.id然后获取该帖子的内容。