NoMethodError undefined method `question' for [#]:Array

前提

質問初投稿になります。
Rubyで過去問の学習システムを作っています。
問題をビューに表示させる機能を実装中に以下のエラーメッセージが発生しました。

実現したいこと

  • インスタンス変数へ格納した中間テーブル(多)のデータから質問が格納されているテーブル(子)のデータを取得しeach文で回して表示させたいのですがアソシエーションは組めていると思うのですが他のテーブルの情報を取得することができません。

  • QuestionテーブルとQuestionPaperテーブルは1対多の関係にありQuestionPaperテーブルはQuestionテーブルとPaperテーブルの中間テーブルの役割を果たしています。

class Paper < ApplicationRecord has_many :question_papers, dependent: :destroy has_many :questions, through: :question_papers, dependent: :destroy end
class Question < ApplicationRecord has_many :question_papers, dependent: :destroy has_many :papers, through: :question_papers, dependent: :destroy end
class QuestionPaper < ApplicationRecord belongs_to :paper belongs_to :question end

question_papers_controller

def show @question_papers = params[:question_papers].map do |question_paper| QuestionPaper.find(question_paper) end end

show.html.erb

<% @question_papers.each do |question_paper| %> <% # binding.pry %> <%= question_paper.question %> <% end %> <br> <%= link_to "戻る", year_questions_path %>

>> question_paper => [#<QuestionPaper id: 1305, paper_id: 72, question_id: 130, choice_number: nil, judge: nil, created_at: "2022-07-25 08:34:11.878460000 +0900", updated_at: "2022-07-25 08:34:11.878460000 +0900">]

どこから間違えているのかわからないためご助言いただけますと幸いです。よろしくお願いいたします。

発生している問題・エラーメッセージ

undefined method `question' for [#<QuestionPaper id: 1305, paper_id: 72, question_id: 130, choice_number: nil, judge: nil, created_at: "2022-07-25 08:34:11.878460000 +0900", updated_at: "2022-07-25 08:34:11.878460000 +0900">]:Array

該当のソースコード

Ruby, Ruby on Rails

試したこと

  • アソシエーションにてスペルミスがないかの確認
  • アソシエーションが組めてる上での記述

補足情報(FW/ツールのバージョンなど)

ruby '3.1.2'

rails, '~> 6.1.6'

コメントを投稿

0 コメント