如何在 Rails 的复选框中显示嵌套对象的数据?
How to display data for nested objects in a check box in Rails?
我遇到了这个问题,我想在 Rails 的复选框中显示正确答案,但无济于事。
由于我的模型相互嵌套,因此结构变得更加复杂,因此调查不仅 has_many,而且 accepts_nested_attributes_for 个问题和 has_many 个类似的选择。问题是我根本无法检查正确答案的方框。
数据在名为 correct_choice 的列中作为布尔值保存到数据库中,此显示操作代码显示复选框,但未选中正确的选择:
<table class="col-md-10">
<thead>
<tr>
<% for question in @survey.questions do %>
<li><%= h question.content %></li>
<% for choice in question.choices do %>
<li><%= h choice.content %>
<%= h check_box(:choice, :correct_choice ) %>
<% end %>
</li>
</li>
<% end %>
</tr>
</thead>
</table>
我已阅读 documentation,但我不知道如何将其应用到我的案例中。谁能指出我正确的方向?
编辑
这是我出的HTML:
<table class="col-md-10">
<thead>
<tr>
<li>Is this a question?</li>
<li>I'm not big. I'm having a breakdown.
<input name="correct_choice[content]" type="hidden" value="0" /><input type="checkbox" value="1" name="correct_choice[content]" id="correct_answer_content" />
<li>Come on, I'm not big.
<input name="correct_choice[content]" type="hidden" value="0" /><input type="checkbox" value="1" name="correct_choice[content]" id="correct_choice_content" />
<li>Who is hungry?
<input name="correct_choice[content]" type="hidden" value="0" /><input type="checkbox" value="1" name="correct_choice[content]" id="correct_choice_content" />
<li>Pass the cheese, please.
<input name="correct_choice[content]" type="hidden" value="0" /><input type="checkbox" value="1" name="correct_choice[content]" id="correct_choice_content" />
</li>
</li>
</tr>
</thead>
</table>
感谢@davidwessman 的建议,我弄明白了。他告诉我的是显示 html 并检查。我做了并与编辑操作(有效的操作)中的 html 进行了比较。
然后很明显我需要使用 check_box_tag 命令而不是 check_box。这是我现在使用的代码:
<thead>
<tr>
<% for question in @survey.questions do %>
<li><%= h question.content %></li>
<% for choice in question.choices do %>
<li><%= h choice.content %>
<%= check_box_tag "correct_choice", "yes", answer.correct_choice %>
<% end %>
</li>
</li>
<% end %>
</tr>
</thead>
我遇到了这个问题,我想在 Rails 的复选框中显示正确答案,但无济于事。
由于我的模型相互嵌套,因此结构变得更加复杂,因此调查不仅 has_many,而且 accepts_nested_attributes_for 个问题和 has_many 个类似的选择。问题是我根本无法检查正确答案的方框。
数据在名为 correct_choice 的列中作为布尔值保存到数据库中,此显示操作代码显示复选框,但未选中正确的选择:
<table class="col-md-10">
<thead>
<tr>
<% for question in @survey.questions do %>
<li><%= h question.content %></li>
<% for choice in question.choices do %>
<li><%= h choice.content %>
<%= h check_box(:choice, :correct_choice ) %>
<% end %>
</li>
</li>
<% end %>
</tr>
</thead>
</table>
我已阅读 documentation,但我不知道如何将其应用到我的案例中。谁能指出我正确的方向?
编辑
这是我出的HTML:
<table class="col-md-10">
<thead>
<tr>
<li>Is this a question?</li>
<li>I'm not big. I'm having a breakdown.
<input name="correct_choice[content]" type="hidden" value="0" /><input type="checkbox" value="1" name="correct_choice[content]" id="correct_answer_content" />
<li>Come on, I'm not big.
<input name="correct_choice[content]" type="hidden" value="0" /><input type="checkbox" value="1" name="correct_choice[content]" id="correct_choice_content" />
<li>Who is hungry?
<input name="correct_choice[content]" type="hidden" value="0" /><input type="checkbox" value="1" name="correct_choice[content]" id="correct_choice_content" />
<li>Pass the cheese, please.
<input name="correct_choice[content]" type="hidden" value="0" /><input type="checkbox" value="1" name="correct_choice[content]" id="correct_choice_content" />
</li>
</li>
</tr>
</thead>
</table>
感谢@davidwessman 的建议,我弄明白了。他告诉我的是显示 html 并检查。我做了并与编辑操作(有效的操作)中的 html 进行了比较。
然后很明显我需要使用 check_box_tag 命令而不是 check_box。这是我现在使用的代码:
<thead>
<tr>
<% for question in @survey.questions do %>
<li><%= h question.content %></li>
<% for choice in question.choices do %>
<li><%= h choice.content %>
<%= check_box_tag "correct_choice", "yes", answer.correct_choice %>
<% end %>
</li>
</li>
<% end %>
</tr>
</thead>