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

在将对象传递给部分之前,可以在视图中实例化对象吗?

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

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

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

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

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

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

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

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

请在此处查看有关演示模式的文章。