Я пытаюсь создать простое приложение для викторин, у меня уже есть одна таблица для вопросов, а другая для ответов (у каждого ответа есть тег question_id для выбора вариантов множественного выбора для каждого вопроса).
Я перечислил все мои вопросы с несколькими вариантами ответов на одной странице, и я хочу, чтобы только ответы, соответствующие каждому вопросу, отображались под вопросом, однако каждый MCQ в настоящее время перечисляет полную таблицу ответов, а не только соответствующие ответы.
Я думаю, что это связано либо с моим представлением, либо с кодом контроллера, который вызывает такое поведение (когда я меняю идентификатор вопроса в моем контроллере только на один вопрос, 4 возможных ответа отображаются правильно, но когда я изменяю его на @questions = Question.all
, тогда возвращается полная таблица ответов).
Или это может быть связано с неправильным использованием <% @question_answers.each do |question_answers| %>
.
Код моего pages_controller.rb:
class PagesController < ApplicationController
def show
end
def home
end
def challenge
@questions = Question.all
@question_answers = QuestionAnswer.where(question_id: @questions.pluck(:id))
# @questions = Question.where(id: 3)
end
end
Мой файл просмотра на pages / challenge.html.erb:
<h1>Challenge</h1>
<% @questions.each do |question| %>
<div class="container">
<p><%= question.question %></p>
<form>
<% @question_answers.each do |question_answers| %>
<input type="radio" name="gender" value=<%= question_answers.answer %>><%= question_answers.answer %><br>
<% end %>
<input type="submit" value="Submit">
</form>
</div>
<% end %>
Я хочу, чтобы только ответы, которые соответствуют каждому вопросу, отображались ниже вопроса, есть идеи, что я здесь не так делаю?