下記のコントローラーをキャッシュを利用して、リファクタリングしたいのですが、どのように書けばいいのか分からず困っております。
rb
1users_controller.rb 2 3def show 4 @user = User.find_by(id: params[:id]) 5 @likes = Like.where(user_id: @user.id) 6 @posts = Post.where(user_id: @user.id) 7 @favorites = Favorite.where(user_id: @user.id) 8 end
調べたところpreloadやeager_loadを駆使してできるとのことですが、N+1問題の記事しかなく八方塞がりです。
どなたか知見のある方、ご教示お願いいたします。
rb
1users.rb 2 3 has_many :favorites, dependent: :destroy 4 has_many :posts, dependent: :destroy 5 has_many :likes, dependent: :destroy
rb
1post.rb 2 3class Post < ApplicationRecord 4 belongs_to :user 5end
rb
1favorite.rb 2 3class Favorite < ApplicationRecord 4 belongs_to :user 5 belongs_to :post 6end
rb
1like.rb 2 3class Like < ApplicationRecord 4 belongs_to :user 5 belongs_to :post 6end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。