我必須在索引頁中呈現最新的14篇文章。 爲了避免用戶多次提醒帖子並阻止帖子創建者投票。減少rails的數據庫請求存在?方法
我這樣做是爲了不顯示給予好評鏈接(在視圖級):
if !(post.upvotes.exists?(:user_id => current_user.id) or post.user_id == current_user.id)
但是,每次我重新加載索引頁時,它會發送這樣的請求14倍。
Upvote Exists (0.2ms) SELECT 1 AS one FROM "upvotes" WHERE "upvotes"."post_id" = $1 AND "upvotes"."user_id" = 2 LIMIT 1 [["post_id", 22]]
我只是想知道,如果這是常見的,我真的想知道是否有更好的方法來達到同樣的效果,同時降低了數據庫查詢。
謝謝。
我改爲:@posts = Post.includes(:upvotes,:user).all.last(14).reverse,它仍然發送14個查詢。 – 2014-12-03 16:14:15