オブジェクトのすべての子オブジェクトを返すメソッドがあるか、存在しない場合は新しい子オブジェクトを作成する方法があるのだろうかと思います。find_child_or_createメソッドは、Railsのfind_or_createと似ていますか?
このような方法は、子オブジェクトが初期化されていないためにネストされたフォームが表示されないため、多くの場合、ネストされたフォームを作成するのに便利です。
ありがとうございます。
オブジェクトのすべての子オブジェクトを返すメソッドがあるか、存在しない場合は新しい子オブジェクトを作成する方法があるのだろうかと思います。find_child_or_createメソッドは、Railsのfind_or_createと似ていますか?
このような方法は、子オブジェクトが初期化されていないためにネストされたフォームが表示されないため、多くの場合、ネストされたフォームを作成するのに便利です。
ありがとうございます。
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| %>
私が知る限り、このような方法はありません。
で使用モデルではなく、ビューでなければなりません。 –
Yeap、モデルまたはプレゼンター、コントローラではない:) – fl00r
フロアにありがとう。ネストされたフォームの場合、デフォルトでは何も利用できないときにRailsは子オブジェクトをインスタンス化するはずです。 – AdamNYC