2011-10-29 4 views
0

オブジェクトのすべての子オブジェクトを返すメソッドがあるか、存在しない場合は新しい子オブジェクトを作成する方法があるのだろうかと思います。find_child_or_createメソッドは、Railsのfind_or_createと似ていますか?

このような方法は、子オブジェクトが初期化されていないためにネストされたフォームが表示されないため、多くの場合、ネストされたフォームを作成するのに便利です。

ありがとうございます。

答えて

1

Iは、ネストされた形でこれを行う:

<%= form_for @parent do |f| %> 
    ... 
    <%= f.fields_for @parent.children || @parent.children.build do |child| %> 
    ... 
    <% end %> 
    ... 
<% end %> 

またはモデル法としてそれを包む:

class Model < AR::Base 
    ... 
    def children_form 
    children || children.build 
    end 
end 

、論理は、コントローラに属すること形態

<%= f.fields_for @parent.children_form do |child| %> 
+0

で使用モデルではなく、ビューでなければなりません。 –

+0

Yeap、モデルまたはプレゼンター、コントローラではない:) – fl00r

+0

フロアにありがとう。ネストされたフォームの場合、デフォルトでは何も利用できないときにRailsは子オブジェクトをインスタンス化するはずです。 – AdamNYC

0

私が知る限り、このような方法はありません。

関連する問題