Ruby on rails 在ruby-rails 3中的关联数组中搜索

Ruby on rails 在ruby-rails 3中的关联数组中搜索,ruby-on-rails,ruby,arrays,ruby-on-rails-3,Ruby On Rails,Ruby,Arrays,Ruby On Rails 3,假设我们有一个Post模型、一个用户模型和一个视图模型 当用户查看文章时,将在“视图”表中创建一条新记录。该表链接用户、帖子和当前时间。稍后,如果该用户再次返回查看帖子,则记录将以新时间更新。非常基本的东西 帖子有很多视图,用户有很多视图 视图属于帖子和用户 在帖子的索引视图中,我想调用每个帖子的特定视图,即 <% @Posts.each do |post| %> <%= post.name %><br/> <%= post.views %> #

假设我们有一个Post模型、一个用户模型和一个视图模型

当用户查看文章时,将在“视图”表中创建一条新记录。该表链接用户、帖子和当前时间。稍后,如果该用户再次返回查看帖子,则记录将以新时间更新。非常基本的东西

帖子有很多视图,用户有很多视图 视图属于帖子和用户

在帖子的索引视图中,我想调用每个帖子的特定视图,即

<% @Posts.each do |post| %>

<%= post.name %><br/>
<%= post.views %> # This connects all of the views related to this post.
                  # How do I get the only one connected to this post and the current_user.id? 

    <% end %>


#这将连接与此帖子相关的所有视图。 #我如何获取唯一一个连接到此帖子和当前的_user.id?

我觉得有一种简单的方法可以做到这一点,但我完全忘记了你可以这样做

current_user.views.where(:post_id => post.id)
# this may work, not sure
current_user.views.where(:post => post) 


有趣的是,我从来没有想过在不点击DB的情况下使用.where或.find_。我最终选择了:post.views.find_by_user_id(current_user.id),它的效果非常好。多谢了,狗伯特!它仍然在访问数据库,rails足够聪明,可以延迟执行查询,直到需要。。。并且不会加载本例中的所有视图,只加载您所请求的视图。看看通过观察日志生成的SQL。
post.views.where(:user_id => current_user.id)
# this may work, not sure
post.views.where(:user => current_user)