This page looks best with JavaScript enabled

【Rails】`index_by`を用いて取り回しのきくハッシュを作成する

 ·   ·  ☕ 1 分で読めます
✏️

index_byを用いて取り回しのきくハッシュを作成する

1
2
3
4
5
6
7
# コントローラ
@questions = Question.all
@answers = Answer.where(question: @questions, user: current_user)

# ビューファイル
@questions.each do |question|
  - answer = @answers.find_by!(question: question)

この場合、answerを取得するためにfind_byを使っているので、その度にクエリを発行してしまう。
これを阻止するために、事前に使用するレコードをハッシュの形に加工しておく。

1
2
3
4
5
6
7
# コントローラ
@questions = Question.all
@answers = Answer.where(question: @questions, user: current_user).index_by(&:question)

# ビューファイル
@questions.each do |question|
  - answer = @answers[question]
Share on

aiandrox
Written by
aiandrox
今日も楽しく明日も楽しく

目次