如何在Rails的复选框中显示嵌套对象的数据?

时间:2015-04-24 19:33:26

标签: ruby-on-rails nested-attributes

我遇到这个问题,我希望在Rails的复选框中显示正确的答案,但无济于事。

由于我的模型彼此嵌套,因此调查结果更加复杂,因此调查不仅具有__,而且还接受了_ented_attributes_for Questions和Questions has_many Choices。问题是我根本无法检查框中是否有正确的答案。

数据作为名为correct_choice的列中的布尔值保存到数据库中,show动作的此代码显示复选框,但未选中正确的选项:

 <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&#39;m not big. I&#39;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&#39;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>

1 个答案:

答案 0 :(得分:0)

感谢@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>