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 %>

しかし、更新しようとすると新しいオブジェクトが作成され続けました。そこで、作成と更新用に別々のフォームを作成しました。2 番目のフォームは次のようなものです。

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

私の質問は、1 つのフォームだけで両方を行う方法はありますか? 単一のモデルを使用する場合、いつ作成または更新するかをどのように知るのでしょうか?

4

1 に答える 1

1

はいあります。それらはネストされた属性と呼ばれます。この Rails キャストでは、アプリケーションにネストされた属性を実装する方法の基本について説明します: http://railscasts.com/episodes/196-nested-model-form-part-1

于 2012-04-30T19:57:47.493 に答える