Я разрабатываю приложение Ruby on Rails с вопросами и ответами.
После входа в систему вы можете увидеть список вопросов, заданных другими пользователями. У меня есть ссылка рядом с каждым из вопросов на /answers/new?question_id=someNumber
. Это ссылка на страницу, на которой отображается вопрос (чтобы напомнить «ответчику») над стандартной формой для отправки вашего ответа. Чтобы отобразить вопрос, я вызываю @question = Question.find_by_id(params[:question_id])
и ссылку @question
в файле представления Haml:
Question details
%h2
#{h @question.title}
#{h @question.description}
%br/
%br/
%h1
Your answer
- form_for(@answer) do |f|
= f.error_messages
%p
= f.label :description, "Enter your response here"
%br
= f.text_area :description
= f.hidden_field "question", :value => @question.id
%p
= f.submit 'Answer'
Проблема в том, что если я проверяю validates_presence_of :description
в Answer.rb, то я теряю question_id
, если пользователь не вводил ничего в поле description
при перезагрузке страницы, поэтому я не могу повторно отобразить вопрос, на который отвечает пользователь. Как мне это исправить?
Есть ли лучший способ сохранить вопрос, на который пользователь пытается ответить, чтобы я мог отобразить его над формой для ввода нового ответа (и, возможно, в других представлениях в будущем)?
Если вам нужно увидеть больше кода, пожалуйста, дайте мне знать.