私は3モデル:Quiz
、has_many
questions
、has_many
answers
です。下のモデルはモデル直感的にbelongs_to
のモデルです(クイズ>質問>回答)。ネストされたモデルに関連付けられたすべてのデータを取得するにはどうすればよいですか?
私の問題は、すべての回答のコレクションを取得したいということです。私はquiz.questions.answers
またはquiz.questions.all.answers
のようなものでこれを行うことができると思ったが、ただエラーundefined method 'answers'
が出る。なぜこれが起こっているのですか?それをどうやって修正しますか?
オハイオ州オハイオ州オハイオ州オハイオ州オハイオ州オハイオ州オハイオ州だったので、おそらくそれだと思っていました...しかし、テーブルデータを変更しなければならないためではないと思っていましたか?現在の私の現在の団体によると、 'answers'には' question_id'があり、 'questions'には' answer_id'がありません。 'has_many:answers、through::questions'を追加すると' answers'から 'question_id'を取り出し、' questions'に 'answer_id'を追加する必要があります。それは、私が「回答」に私のメソッドのいくつかに対して 'question_id'を持っているという事実に頼っているので、私には少し問題があります。 –
いいえ、 'has_many:answers、has::questions'を追加することで、' Quiz'モデルに 'has_many:questions'を既に持っているので、データベースレベルで何も変更する必要はありません。ActiveRecordは'クイズ'に属するすべての '答え'を得る。一度試してみてください! – RSB
お返事ありがとうございます。それは私にとって理にかなっていますが、なぜRubyonrailsの公式ガイド(?)がそれを介入モデルのように見せてくれるのですか?(それらの場合、 '任命 'は、他のIDの両方が必要ですか?)http://guides.rubyonrails.org/ association_basics.html#have-many-through-association –