使用form_tag获取params的哈希值

时间:2014-02-20 22:49:10

标签: arrays forms ruby-on-rails-4 hash

我一直在四处寻找我的问题的答案,到目前为止没有任何成功......

我想在提交表单后将一些参数组合在一起,我希望它看起来像:

“mysurvey”=> { {“我的问题1”=> [“我的第一个答案”,“我的第二个答案”,“我的第三个答案”]}, {“我的问题2”=> [“我的另一个第一个答案”,“我的另一个第二个答案”,“我的另一个第三个答案”]} }

<%= form_tag (@survey) do |f| %>

      my first question: <%= text_field_tag "survey[mysurvey][]" %>
      answer: <%= text_field_tag "survey[mysurvey][]" %>
      answer: <%= text_field_tag "survey[mysurvey][]" %>
      answer: <%= text_field_tag "survey[mysurvey][]" %>

      my second question: <%= text_field_tag "survey[mysurvey][]" %>
      answer: <%= text_field_tag "survey[mysurvey][]" %>
      answer: <%= text_field_tag "survey[mysurvey][]" %>
      answer: <%= text_field_tag "survey[mysurvey][]" %>
<%= submit_tag "envoyer" %>

考虑到mysurvey是调查模型的唯一属性。

我无法找到将每个问题分组为各自答案的方法,是否可能? 如果您有任何想法或解决这个问题,请告诉我! 非常感谢你! 马特

1 个答案:

答案 0 :(得分:2)

我想您想花一些时间阅读表单指南的这一部分:http://guides.rubyonrails.org/form_helpers.html#understanding-parameter-naming-conventions

很难从你的问题中知道正确的答案而不了解更多关于模型的内容,但我认为你正在寻找的是这样的:

  my first question: <%= text_field_tag "survey[mysurvey][question1]" %>
  answer: <%= text_field_tag "survey[mysurvey][question1][]" %>
  answer: <%= text_field_tag "survey[mysurvey][question1][]" %>
  answer: <%= text_field_tag "survey[mysurvey][question1][]" %>

  my second question: <%= text_field_tag "survey[mysurvey][question2]" %>
  answer: <%= text_field_tag "survey[mysurvey][question2][]" %>
  answer: <%= text_field_tag "survey[mysurvey][question2][]" %>
  answer: <%= text_field_tag "survey[mysurvey][question2][]" %>

但上述每个答案中的问题元素survey[mysurvey][question1]取决于您的模型的结构;其余的将为您提供您正在寻找的数据格式。

可能循环模型的更好方法是:

<%= form_for @survey do |survey_form| %>
  <%= survey_form.text_field :question %>
  <% @survey.questions.each do |question| %>
    <%= survey_form.fields_for question, index: question do |question_form|%>
      <%= question_form.text_field :answer %>
    <% end %>
  <% end %>
<% end %>