在将对象传递给部分?
之前,是否可以在视图中实例化该对象<%= render :partial => "trade_new", :locals => {:trade=>Trade.new("e", "b") } %>
或者最好将Controller中的任何对象实例化为实例变量:
@trade = Trade.new("e", "b")
然后将实例变量传递给视图中的部分,如下所示:
<%= render :partial => "trade_new", :locals => {:trade => @trade } %>
我的猜测是,最好在控制器中实例化新对象以避免重复 - 例如,在多个模板可能需要将此新对象从同一操作传递给部分的情况下。
答案 0 :(得分:2)
首先,可以在视图中实例化一个对象。你的脸上什么都不会爆炸。但是,您错过了将架构分成层的全部优势。
最好在控制器中实例化对象。其中一些原因包括 - 更好的重用,更简单的测试,更好的设计,因为解耦。
请参阅有关演示模式的文章here。