在rails编辑视图中预填充复杂的表单值

时间:2015-06-19 16:59:08

标签: ruby-on-rails forms

我有一个评估表,提供问题列表,并接受每个问题的答案。表单数据通过ajax手动提交。

尝试在编辑视图中预先填充数据时遇到问题。以下是我的观点:

edit.html.erb:

<div class="container">
    <%= render 'assessment_form', :locals=> {:assessment => @assessment} %>
</div>

_assessment_form.html.erb:

<%= form_for @assessment do |f| %>
   <%= f.submit 'Save', :class=> "btn btn-primary", :style=>"width: 100%;" %>

      <div class="col-sm-2 col-sm-offset-10">
        <h4>Show on Followup?</h4>
     </div>

      <% @assessment.questions.where(category:"S").each do |question| %>
        <%= render 'question_fields', :question=> question, :f=> f %>
      <% end %>

    <%= f.hidden_field :patient_id, :value=> @assessment.patient.id %>
    <%= f.hidden_field :template_id, :value=> @assessment.template_id %>
<% end %>

_question_fields.html.erb:

<p><%= question.content %></p>

  <%= f.fields_for :answer do |builder| %>

    <div class="row question">

      <div class="col-sm-2 pull-right toggle">
        <%= builder.check_box :tracking, {:checked=> false, :class=>"trackable", :data => {:'on-text' => "Yes", :'off-text' => "No", :'on-color'=> "success", :question => question.id}}, 0 , 1 %>
      </div>

      <div class="col-sm-10">
          <%= builder.text_area :content, :class=>"form-control question-field", :data => {:question => question.id} %>
       </div>

    </div>

  <% end %>

但是没有一个答案内容在视图中呈现,表单字段是空白的。

这是一个示例调用:Assessment.last.answers.first.content将为我提供字符串“test”。这应该出现在我的text_area框中,但事实并非如此。

1 个答案:

答案 0 :(得分:1)

就是这样,实例变量@assessment传递给部分。

<%= render 'assessment_form' %>