ネストされたモデル フォーム パート 1/2をレール キャストで確認します。レールキャストをチェックアウトすると、きっと理解できます:)多対多の関係、マイナーなtweekについて説明されており、1対1で実行できます。
あなたが見たいと思うかもしれないいくつかのサンプルコード:
class Wiki < ActiveRecord::Base
has_many :revisions
has_one :latest_revision, :class_name => "Revision", :order => 'updated_at desc', :limit => 1
accepts_nested_attributes_for :revisions
end
class Revision < ActiveRecord::Base
belongs_to :wiki
end
# new Wiki page, first revision
def new
@wiki = Wiki.new
@revision = @wiki.revisions.build
end
def create
@wiki=Wiki.new(params[:wiki])
@wiki.save
end
# adding a Revision to a Wiki page
def edit
@wiki = Wiki.find(params[:id])
@revision = @wiki.revisions.build # creating a new revision on edit
end
def update
@wiki=Wiki.new(params[:wiki])
@wiki.save
end
def show
@wiki = Wiki.find(params[:id])
@revision = @wiki.latest_revision
end