Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails simple_在值内形成较短的字符串=_Ruby On Rails_Simple Form - Fatal编程技术网

Ruby on rails Rails simple_在值内形成较短的字符串=

Ruby on rails Rails simple_在值内形成较短的字符串=,ruby-on-rails,simple-form,Ruby On Rails,Simple Form,我有一个应用程序,其中一个注册步骤是填写调查。调查在顶部有问题,答案作为单选按钮。我正在使用simple\u formgem创建如下表单: <%= simple_form_for :appropriateness_test_results, url: url do |f| %> <% randomize_questions.each_with_index.map do |q, i| %> <%= f.input "[#{i}][answer]

我有一个应用程序,其中一个注册步骤是填写调查。调查在顶部有问题,答案作为单选按钮。我正在使用
simple\u form
gem创建如下表单:

<%= simple_form_for :appropriateness_test_results, url: url  do |f| %>
  <% randomize_questions.each_with_index.map do |q, i| %>
    <%= f.input "[#{i}][answer]", label: "#{i+1}. #{q[:question]}", collection: q[:answers], as: :radio_buttons, wrapper_class: 'input simple-radio-buttons'%>
    <%= f.input "[#{i}][question]", as: :hidden, input_html: { value: q[:question] } %>
    <%= f.input "[#{i}][id]", as: :hidden, input_html: { value: q[:id] } %>
  <% end %>
  <%= f.button :submit, 'Submit' %>
<% end %>
对于上面的代码,我认为它不必要地在两个地方呈现
答案
,即
。浏览器控制台的输出:

<span class="radio"><input class="radio_buttons required" type="radio" value="Yes" name="appropriateness_test_results[[0][answer]]" id="appropriateness_test_results_[0][answer]_yes">
  <label class="collection_radio_buttons" for="appropriateness_test_results_[0][answer]_yes">
    "Yes"
  </label>
</span>

“是的”
当我只有
选项时,这不是一个问题,但我可以想象,如果答案很长,这将是一个问题,例如:

Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一个巨大的挑战。悬挂式权杖,无前庭


我想这可能会造成混乱。有没有办法让
value=
中的一些较短字符串代替现在的完整答案?

你可以用一个id代替完整的字符串,但问题是怎么做?这并不是将
集合:q[:answers]
更改为
集合:q[:id]
,因为我仍然需要以某种方式显示这些答案。因为您将答案存储在一个数组中,所以您可以使用索引对每个答案进行
,使用索引设置值并将字符串打印给用户如果您知道如何基于
每个带有执行此操作,我假设您知道如何在
值=
的内部传递,例如
foo'
,对吗?如果是,如果我可以在
value=
中传递一些随机字符串,为什么要在视图中移动这样的逻辑?同样,如何传递这样的随机字符串?
<span class="radio"><input class="radio_buttons required" type="radio" value="Yes" name="appropriateness_test_results[[0][answer]]" id="appropriateness_test_results_[0][answer]_yes">
  <label class="collection_radio_buttons" for="appropriateness_test_results_[0][answer]_yes">
    "Yes"
  </label>
</span>