Rails:以嵌套形式提交子模型

时间:2013-07-22 03:49:03

标签: ruby-on-rails ruby-on-rails-3 nested-forms nested-attributes

我已就这一主题进行了一段时间的研究,但尚未找到真正解决我想要实现的目标的方法。

我正在使用嵌套的一对多嵌套表单(Project有很多任务)。并且每个任务都有许多属性,例如type,assigned_individual,due_date等。在一次提交中保存/更新父项目和嵌套子模型任务我没有问题。但我需要实现的目标似乎与这项努力相反。除了全局提交之外,我还需要为每个任务进行一次Ajax保存调用。因此,当任务列表变长时,用户不必担心丢失他们之前为其他任务编写的内容。他们可以点击该保存按钮并获得反馈,说明他已为该任务输入的内容已保存。

目前,Project位于form_for包装器中,而Tasks位于fields_for partial中 这些是我现在拥有的简化版本。 这是edit.html.erb中的表单

<%= form_for @project do |f| %>
   <p>f.text_field :title</p>
   <p>f.text_field :author</p>
   <%= render :partial=> 'tasks', :collection=> @project.tasks %>
<%= f.submit 'submit' %>
<% end %>

这是部分任务:

<%= fields_for :tasks do |f| %>
  <label>Category</label>
  <%= f.text_field :category%>     
  <label>Description</label>
  <%= f.text_field :description%>  
  <label>Author</label>
  <%= f.text_field :author%> 
  <label>Assigned Individual</label>
  <%= f.text_field :assigned_individual%>
  <label>Notes</label>
  <%= f.text_area :notes%>
  <label>Due Date</label>
  <%= f.text_field :due_date%>
  <button onclick='update_task();'>Save Task</button> 
<% end %>

由于我不能在一个表单中有多个提交按钮,我现在能想到的是使用jQuery来收集该部分中的每个用户条目,并将它们作为大哈希传递回任务控制器更新方法。

update_task()

但是有更清洁的方式吗?

0 个答案:

没有答案