我有三个资源:工作、问题和答案。这些关系是: 约伯有很多问题;问题有很多答案;约伯有很多答案。
我已经在作业/新视图上嵌套了所有表单。
现在,该应用程序的目标是让管理员(我们)在管理员墙后面创建工作和问题。一旦我们这样做了,我们希望列出为每个特定工作创建的问题,并让用户回答问题。这需要将答案表单放在不在管理墙后面的另一个视图(相同或不同的控制器)上。
由于表单都嵌套在作业/新视图中,我为答案表单创建了一个部分:
<%= form_for(@job) do |f| %>
<%= f.label :name %><br />
<%= f.text_field :name %>
<%= f.fields_for :questions do |builder| %>
<%= render 'question_fields', :f => builder %>
<% end %>
<%= f.submit %>
<% end %>
问题部分是:
<%= f.label :question, "Question" %>
<%= f.text_area :question, :rows => 10 %>
<%= f.check_box :_destroy %>
<%= f.label :_destroy, "Remove Question" %>
<%= f.fields_for :answers do |builder| %>
<%= render 'partials/answer_fields', :f => builder %>
<% end %>
答案部分是:
<%= f.label "Answer" %>
<%= f.text_area :answer, :rows => 10 %>
<%= f.hidden_field :question_id, :value => @question %>
<%= f.hidden_field :job_id, :value => @job.id %>
我的想法是我创建了一个部分,我将能够在应用程序中的任何地方引用它,但我一直在尝试一切,我似乎无法让它工作。
我基本上有这个设置的两个问题:
1)如何在另一个视图上自行呈现部分答案(正确的代码是什么)?2) 创建此视图的最佳位置在哪里?我最初的想法是另一个工作视图,因为它将嵌套在父资源下,但我不完全确定这是否有效。
谢谢,如果您需要更多信息或澄清,请告诉我。