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 –