Я использую heroku для запуска приложения для викторины.Как заказать модель по id в представлении?
class Question
belongs_to :quiz
end
class Answer
belongs_to :question
end
Так что я генерировать викторины, используя что-то вроде этого:
<% @questions.each do |question| %>
// put questions here
<% question.answers.each do |answer| %>
// put answers here.
<% end #answer.each do %>
<% end #questions.each do %>
Это достаточно легко заказать @questions. В моем контроллере у меня есть:
@quiz = Quiz.find(params[:id])
@questions = @quiz.questions.order(:id)
так просто с помощью order(:id)
я могу гарантировать, что вопросы отображения в порядке их идентификатор. Я не могу найти способ заказать ответы таким же образом.
@answers = @questions.answers.order(:id)
не работает, потому что я предполагаю, что рубин не знает, какой вопрос я использую. Я не могу просто использовать has_many :answers, through: :questions
в моей модели Quiz
, потому что тогда для каждого вопроса будут отображаться все ответы. Я хочу как-то отсортировать ответы на мой взгляд по id, что-то вроде
question.answers.order(:id).each
но когда я это делаю, ничего не происходит (потому что, возможно, у Array нет метода заказа?) Что мне делать?
Я не уверен, что понимаю, как ответы на самом деле должны быть отсортированы. Не могли бы вы дать более подробную информацию (возможно, даже поделиться некоторыми потенциальными значениями и ожидаемой продукцией?). –
Вы можете добавить рамки по умолчанию к вашим моделям для заказа по идентификатору, а направляющие должны добавить его ко всем запросам. – Doon