0

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

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

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

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

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

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

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

4

1 回答 1

2

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

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

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

于 2009-05-27T06:48:35.013 回答