【问题标题】:How do I add custom attributes to a form_for?如何将自定义属性添加到 form_for?
【发布时间】: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 (这样你就知道你要回答哪个),并使用索引作为表单字段名称的一部分。例如&lt;%= f.hidden_field "question_id_#{idx}", :value =&gt; q.id %&gt;
  • 谢谢!我刚刚添加了这一点,我还为单选按钮添加了&lt;%=f.radio_button "answer#{index+1}", a%&gt;,但是我得到了一个未定义的方法错误。这是因为"answer#{index+1}" 不是@quiz 的属性。我该如何让它发挥作用?
  • 如您所见,您使用的是_tag 版本,而不仅仅是form_for 版本:)

标签: html ruby-on-rails ruby erb


【解决方案1】:

好的,所以我意识到我不应该在 f 上调用这些表单标签。而是将它们作为自己的表单标签

例如:

radio_button_tag 而不是f.radio_button

【讨论】:

  • 能否添加代码示例?
猜你喜欢
  • 1970-01-01
  • 2012-07-18
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多