【发布时间】:2013-11-20 20:34:52
【问题描述】:
我不知道可能是什么原因造成的。我正在应用程序中制作我的第二个嵌套表单。我有一个网站供学生找工作。工作模型和表格是指在网站外完成的工作,并简单地列出学生在现实世界中的工作。它是一种嵌套形式,是称为 Resume 的模型的一部分。我有另一个模型,完全不同,称为 Schedule。计划属于_一个名为 Project 的模型。我正在尝试制作一个嵌套表单,以便用户可以创建一个时间表。两种表单都使用 javascript 根据需要在页面上动态创建新表单。出于某种原因,当我尝试使用日程表进入页面时,我被告知:
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 部分进行此操作?谢谢!
【问题讨论】:
-
在您的问题之上,我是否正确地假设您正在尝试向此表单动态添加字段?
-
是的。本质上,每个计划都包含一个任务。每次有人点击“添加”时,都会动态创建一个新的日程表(标题一个字段,任务一个字段)
-
是的,我想我能认出你在做什么,因为我昨天确实在做这个!如果您需要一些灵感,这里有一个非常好的教程(带有工作演示):pikender.in/2013/04/20/…
标签: jquery ruby-on-rails ruby-on-rails-4 nested-forms nested-attributes