B
エンティティを作成するたびに、新しいエンティティを作成する必要がありますA
。これを行うために、のメソッドB.create
内に呼び出しを追加してみました。ただし、これによりエラーが発生します。A.create
a_controller
Missing template a/create
だから私の質問は:コントローラーB
からエンティティを作成するにはどうすればよいですか?A.create
B
エンティティを作成するたびに、新しいエンティティを作成する必要がありますA
。これを行うために、のメソッドB.create
内に呼び出しを追加してみました。ただし、これによりエラーが発生します。A.create
a_controller
Missing template a/create
だから私の質問は:コントローラーB
からエンティティを作成するにはどうすればよいですか?A.create
このようなもの?
def create
@A = A.new(params[:a])
@B = B.new(params[:b])
respond_to do |format|
if @A.save && @B.save
format.html { redirect_to @A, :notice => 'A was successfully created.' }
else
# render new with validation errors
format.html { render :action => "new" }
end
end
end
ただし、オブジェクトが「関連」している場合、つまりhas_manyまたはbelongs_toの場合は、次のようなものが必要になる場合があります。
# project has_many tasks
def create
@project = Project.new(params[:project])
@project.tasks.new(params[:task])
if @project.save # this should save both objects and in the same transaction
....
end
3番目のオプションはaccepts_nested_attributes_forを使用することです-詳細はこちら:http ://currentricity.wordpress.com/2011/09/04/the-definitive-guide-to-accepts_nested_attributes_for-a-model-in-rails-3/