0

我有以下内容:

class Person < ActiveRecord::Base
  has_many :tasks
end

class Task < ActiveRecord::Base
  belongs_to :person
end

我可以毫无困难地为一个人创建新任务,但是在尝试更新任务时会变得很困难。

一开始我对这两个动作都有一个部分:

<%= form_for([@person, @person.tasks.build]) do |f| %>
    # Form stuff
    <%= f.submit "Guardar", :class => 'btn'%>
<% end %>

但它在尝试更新时不断创建新对象。所以我为创建和更新创建了单独的表单,第二个是这样的:

<%= form_for([@person, @task], :url => {:action => :update} ) do |f| %>
    # Form stuff
    <%= f.submit "Guardar", :class => 'btn'%>
<% end %>

我的问题是,有没有办法只用一种形式来做这两件事?使用单个模型时,它如何知道何时创建或更新?

4

1 回答 1

1

就在这里。它们被称为嵌套属性。这个 rails cast 介绍了如何在应用程序中实现嵌套属性的基础知识: http ://railscasts.com/episodes/196-nested-model-form-part-1

于 2012-04-30T19:57:47.493 回答