【问题标题】:Simple_Form nesting expected Array (got String) for param `answer_ids'参数“answer_ids”的 Simple_Form 嵌套预期数组(得到字符串)
【发布时间】:2014-08-25 21:15:41
【问题描述】:

我希望用户能够在表单上填写多项选择题。该表格由多项调查组成,每项调查都有多个问题(每个问题都是多项选择)

我似乎无法存储多重调查位。我想要一个 answer_ids ,然后我可以将其保存在 User has_many Answers Through: :user_answer 关系中。但我在挣扎。

我收到以下错误:

参数“answer_ids”的预期数组(得到字符串)

这是我的表格:

<%= simple_form_for [current_user], :url => competition_enter_path, :method => :POST do |u| %>
  <% @surveys.each do |survey| %>
    <%= u.simple_fields_for [survey] do |f| %>

        <div class="contnt1">


        <%= survey.name %>
        <br />
             <% survey.questions.each do |qq| %>
              <%= f.simple_fields_for qq do |q| %>
                      <h3><%= qq.question %></h3>
                      <%=   q.association :answers,
                                          label: false,
                                          collection: qq.answers,
                                          as: :"#{qq.question_type.code}",
                                          :label_method => :answer,
                                          required: true
                      %>
                      <% end %>
                   <% end %>
                </div>

          <% end %>
    <% end %>
        <div class="actions">
          <%= u.submit %>
        </div>
<% end %>

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 simple-form has-many-through ruby-on-rails-4.1


    【解决方案1】:

    我几乎遇到了同样的问题。我通过替换来修复:

    collection: qq.answers,
    

    与:

    collection: qq.answers.map{|v| [v.property_for_answer_text, v]}
    

    据我所知,问题在于表单看到的值是字符串而不是 Answer 对象。因此它会尝试将 String 发送到应为 Answer 对象的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多