我不知道可能导致这种情况的原因。我正在应用程序中创建第二个嵌套表单。我有一个网站供学生找工作。工作模型和表单是指从网站完成的工作,只是列出学生的真实工作。它是一个嵌套形式,是名为Resume的模型的一部分。我有另一个完全不同的模型,名为Schedule。 Schedule belongs_to一个名为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 partial?谢谢!
答案 0 :(得分:0)
看起来你没有正确排列论据。 (如果你在应用程序助手中使用了任何东西,你也应该给它。)
您的link_to函数如下所示
link_to_add_fields "Add Schedule", f, :schedules
但你的javascript正在调用不同的参数:
function add_fields(link, association, content)
如果你匹配它们,你会得到f =关联,这是错误的。 :schedule是关联。我会查看这个railscast以获得更多帮助:http://railscasts.com/episodes/403-dynamic-forms