Вы должны использовать только локальные переменные в частичном? - PullRequest
7 голосов
/ 26 мая 2009

Использование локальных переменных представляется целесообразным в частичном варианте, который можно использовать в масштабах всего приложения, чтобы избежать зависимостей между приложениями.

Но в пределах одного контроллера кажется приемлемым ссылаться на переменные экземпляра, которые, как вы знаете, будут доступны во всех действиях, использующих партиал.

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

Имеет ли значение, если вы ссылаетесь на переменные экземпляра в частичном?

Ответы [ 2 ]

7 голосов
/ 26 мая 2009

Ты сегодня в ударе! : -)

Вы можете передавать переменные в партиал как :locals, чтобы все это было красиво и чисто. Например,

render :partial => 'my_partial', :locals => { :some_variable => some_variable, :some_important_value => 'an important point!' }

Эти переменные затем доступны в частичном представлении:

<%= some_variable %>
<%= some_important_value %>

Тем не менее, нет ничего особенно неправильного в использовании переменных экземпляра в ваших частичных размерах.

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

Я бы рекомендовал использовать переменные экземпляра, только если частичное не является общим, поскольку это может очень быстро запутать;)

...