1
我有一个帖子网格,用户可以喜欢或不喜欢导致N + 1查询。Rails 4条件呈现导致N + 1查询
我渲染后的集合,其局部的有:
<%= post.title %>
<% if current_user.liking?(post) %>
<%= render partial: 'posts/unlike' %>
<% else %>
<%= render partial: 'posts/like' %>
<% end %>
...
用户控制器:
def show
@user = User.find(params[:id])
@feed = @user.posts.paginate(page: params[:page])
end
这是造成每个岗位一个查询。我虽然使用.INCLUDE(:喜欢),但我不知道该怎么做了“CURRENT_USER”
编辑:
我结束了创建为喜欢这就是第二个查询属于CURRENT_USER
@liking_items = @feed.includes(:likes).where(likes: { user_id: current_user })
@user是发布者,current_user是可以喜欢或不同于帖子的登录用户。你怎么能通过我的观点? –
你只需要过滤这些帖子,然后将它传递给视图,就像你在做什么。 – dpedoneze
我想你的查询是错误的,因为它获得具有user_id的邮件:current_user,这不是用例。我需要喜欢有user_id:current_user –