【发布时间】:2016-09-20 04:53:52
【问题描述】:
好的,这是我的代码。
<%= form_for @quiz do |f|%>
<% @questions.shuffle.each do |q| %>
# get_answers returns an array of 4 random answers
<% answers = q.get_answers %>
<%= f.label q.inquest %><br>
<% answers.each do |a| %>
<%= f.radio_button <need help here!>, a %>
<%= f.label <need help here!>, a %><br>
<%= f.hidden_field <need help here!>, q.id %>
<% end %>
<% end %>
<% end %>
我的测验表有属性
concept_id
user_id
如何添加可以在发布操作中访问的自定义属性?它应该是动态的,因此它可以随着有多少问题而扩展。我想要这样的东西作为我的参数。
{
user_answers: {
question1: {
:question_id
:answer
{
}
}
根据有多少问题,它会像问题1、2、3、4等。
hidden_field 将携带 question_id,而 radio_button 将携带答案。我不需要它来保存或任何东西,我只需要访问它们
【问题讨论】:
-
您好,欢迎来到 Stack Overflow。酷 - 看起来不错.. 所以我会先使用
each_with_index(这样你就知道你要回答哪个),并使用索引作为表单字段名称的一部分。例如<%= f.hidden_field "question_id_#{idx}", :value => q.id %> -
谢谢!我刚刚添加了这一点,我还为单选按钮添加了
<%=f.radio_button "answer#{index+1}", a%>,但是我得到了一个未定义的方法错误。这是因为"answer#{index+1}"不是@quiz 的属性。我该如何让它发挥作用? -
如您所见,您使用的是
_tag版本,而不仅仅是form_for版本:)
标签: html ruby-on-rails ruby erb