我是Rails的新手,并且一直没有成功地解决这个问题。我有一个表单供用户通过单选按钮提交多项选择问题的答案,我希望他们选择的答案在他们重新访问问题或重新加载页面时再次显示。他们的答案通过TestQuestions模型存储在数据库中的answer_id列中。以下代码使最后一个单选按钮被选中而不是给定的答案,有关如何从数据库中获取默认值的任何建议吗?
根据我在下面的评论,我认为这可能需要jQuery / javascript来比较html中的输入值,即 -
<input id="answer_id_5" type="radio" value ="5" name="answer_id"></input>
到数据库条目。
show.html.erb
<%= form_tag({controller: "test_questions", action: "update"}, method: "patch") do %>
<% @test_question.question.answers.each do |answer| %>
<li>
<%= radio_button_tag "answer_id", answer.id, checked: @test_question.answer_id %> # THE PROBLEM LINE
<%= answer.content %>
</li>
<% end %>
<%= submit_tag "Next" %>
<% end %>
test_questions_controller.rb
def show
@test_question = @test_questions.find(params[:id])
end
答案 0 :(得分:0)
你应该这样做:
<%= radio_button_tag "answer_id", answer.id, checked: @test_question.answer_id == answer.id %>
此:
@test_question.answer_id == answer.id
将返回true
或false
,从而选中或取消选中单选按钮。
@test_question.answer_id
返回一个整数&gt; 0,这是一个真正的值,意味着你要检查所有单选按钮。由于只能检查一个单选按钮,因此它将是最后一个。