Хорошо, чтобы создать экземпляр объекта в представлении? - PullRequest
0 голосов
/ 27 мая 2009

Можно ли создавать экземпляр объекта в представлении, прежде чем передать его в частичное представление?

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

Или лучше создать экземпляр объекта в контроллере в качестве переменных экземпляра:

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

и затем передайте переменную экземпляра частичному в представлении следующим образом:

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

Полагаю, лучше создавать новые объекты в контроллере, чтобы избежать дублирования, например, в случае, когда нескольким шаблонам может потребоваться передать этот новый объект частичному из одного и того же действия.

1 Ответ

2 голосов
/ 27 мая 2009

Во-первых, можно создать экземпляр объекта в представлении. Ничто, вероятно, не взорвется на вашем лице. Однако в этом случае вы упускаете все преимущества разбиения вашей архитектуры на уровни.

Лучше создать экземпляр объекта в контроллере. Вот некоторые из причин - лучшее повторное использование, гораздо более простое тестирование, лучший дизайн из-за развязки.

См. Статьи о шаблонах презентаций здесь .

...