好的,在View中实例化一个对象?

时间:2009-05-27 06:36:36

标签: ruby-on-rails model-view-controller instantiation

在将对象传递给部分?

之前,是否可以在视图中实例化该对象
<%= render :partial => "trade_new", :locals => {:trade=>Trade.new("e", "b") } %>

或者最好将Controller中的任何对象实例化为实例变量:

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

然后将实例变量传递给视图中的部分,如下所示:

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

我的猜测是,最好在控制器中实例化新对象以避免重复 - 例如,在多个模板可能需要将此新对象从同一操作传递给部分的情况下。

1 个答案:

答案 0 :(得分:2)

首先,可以在视图中实例化一个对象。你的脸上什么都不会爆炸。但是,您错过了将架构分成层的全部优势。

最好在控制器中实例化对象。其中一些原因包括 - 更好的重用,更简单的测试,更好的设计,因为解耦。

请参阅有关演示模式的文章here