我不知道可能是什么原因造成这种情况。我在应用程序中制作第二个嵌套表单。我有一个网站让学生找工作。工作模式和形式是指从网站上完成的工作,并简单列出学生的真实世界工作。它是一种嵌套形式,是名为Resume的模型的一部分。我有另一个模型,完全不同,称为Schedule。安排belongs_to称为项目的模型。我正在尝试制作嵌套表单,以便用户可以创建计划。这两种形式都使用javascript根据需要在页面上动态创建新表单。出于某种原因,当我试图进入该计划表页面,有人告诉我:Rails嵌套窗体错误
Missing partial schedules/job_fields, application/job_fields
这是没有意义的工作,计划没有任何关系。它不应该寻找部分就业领域。下面是时间表的视图代码:
<% @projects.each do |project| %>
<%= form_for project do |f| %>
<%= f.fields_for :schedules do |builder| %>
<%= render 'schedule_fields', :f => builder %>
<% end %>
<p><%= link_to_add_fields "Add Schedule", f, :schedules %>
<p><%= f.submit "Submit" %></p>
<% end %>
<% end %>
下面是部分 '_schedule_fields.html.erb'
<p class = "fieldo">
<%= f.label :title %><br />
<%= f.text_field :title %><br />
<%= f.label :task %><br />
<%= f.text_field :task %><br />
<%= f.hidden_field :_destroy %>
<%= link_to_function "remove", "remove_fields(this)" %>
</p>
,这里是jQuery的:
//Dynamic forms
function remove_fields(link) {
$(link).prev("input[type=hidden]").val("1");
$(link).closest(".fieldo").hide();
}
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g");
$(link).parent().before(content.replace(regexp, new_id));
}
现在,这里的东西有趣。如果我在views/schedules目录中创建一个'_job_fields.html.erb'文件,并复制并粘贴'_schedule_fields.html.erb'中的内容,则表单完美无缺。我无法弄清楚为什么它会在表单计划中明确表示时寻找job_fields部分。我如何使用schedule_fields部分工作?谢谢!
在你的问题之上,我是否正确地假设你试图动态添加字段到这个表单? –
是的。实质上,每个时间表由一个任务组成。每次有人点击“添加”时,都会动态创建一个新的时间表表单(一个字段用于标题和一个字段用于任务) – Philip7899
是的,我想我可以识别您正在做的事情,因为我昨天正在从事这项工作!如果你需要一些灵感,这里有一个非常好的教程(带有工作演示):http://pikender.in/2013/04/20/child-forms-using-fields_for-through-ajax-rails-way/ –