我有一个评估表,提供问题列表,并接受每个问题的答案。表单数据通过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框中,但事实并非如此。
答案 0 :(得分:1)
就是这样,实例变量@assessment传递给部分。
<%= render 'assessment_form' %>