ビュー内のオブジェクトをインスタンス化しても大丈夫?
-
06-09-2019 - |
質問
部分的にそれを渡す前に、ビュー内のオブジェクトをインスタンス化しても大丈夫ですか?
<%= render :partial => "trade_new", :locals => {:trade=>Trade.new("e", "b") } %>
やインスタンス変数としてコントローラ内の任意のオブジェクトをインスタンス化することをお勧めします:
@trade = Trade.new("e", "b")
このようなビューに部分的にインスタンス変数を渡し、
<%= render :partial => "trade_new", :locals => {:trade => @trade } %>
私の推測では、それは重複を避けるために、コントローラに新しいオブジェクトをインスタンス化する方が良いでしょうです - 。、このような複数のテンプレートが同じアクションから部分的にこの新しいオブジェクトを渡す必要があるかもしれない場合のように、
解決
まず、ビュー内のオブジェクトをインスタンス化しても大丈夫です。何も、おそらくあなたの顔に爆破ません。しかし、あなたは階層にあなたのアーキテクチャを分割全体の利点を逃しています。
コントローラ内のオブジェクトをインスタンス化することをお勧めします。理由のいくつかは、 - より良い再利用、はるかに簡単なテスト、理由はデカップリングの優れたデザインを
。プレゼンテーションパターンに関する記事を参照してください。ここを。
所属していません StackOverflow