0

ビューでオブジェクトをインスタンス化してからパーシャルに渡すことはできますか?

<%= render :partial => "trade_new", :locals => {:trade=>Trade.new("e", "b") } %>

または、コントローラー内のオブジェクトをインスタンス変数としてインスタンス化することをお勧めします。

@trade = Trade.new("e", "b")

次に、インスタンス変数を次のようにビューのパーシャルに渡します。

<%= render :partial => "trade_new", :locals => {:trade => @trade } %>

複数のテンプレートがこの新しいオブジェクトを同じアクションからパーシャルに渡す必要がある場合など、重複を避けるためにコントローラーで新しいオブジェクトをインスタンス化する方が良いと思います。

4

1 に答える 1

2

まず、ビューでオブジェクトをインスタンス化しても問題ありません。おそらく何もあなたの顔に爆発することはありません。ただし、そうすると、アーキテクチャを層に分割する利点がすべて失われます。

コントローラーでオブジェクトをインスタンス化することをお勧めします。理由には、再利用の向上、テストの簡素化、デカップリングによる設計の向上などがあります。

プレゼンテーション パターンに関する記事は、こちらを参照してください。

于 2009-05-27T06:48:35.013 に答える