Направляет блок кода на частичный
Rails 3.2.13 и ERB
Я пытаюсь отправить некоторые элементы link_to к частичному. Я отправляю в заголовок к частичному успешно, как показано ниже.
<%= render :partial =>'form',
:locals => {:page_title => t(:'<h2>Editing Feature</h2>')}
Что мне не нравится, так это то, что я сейчас занимаюсь этим:
<%= link_to 'Show', @feature %> |
<%= link_to 'Back', features_path %>
как часть основной страницы. Я хотел бы взять этот кодовый блок и отправить его в партиал для рендеринга там. Основная причина в том, что simple_form определена в частичном, и у меня есть колодец, который содержит все на этой странице. За исключением двух элементов link_to внизу страницы. Если бы я мог как-то передать их в частное (я предполагаю, что это блок кода), я бы мог решить, где их разместить и как отобразить их в самой форме, а не в качестве запоздалой мысли.
Благодарю.
1 ответ
Обычно мы используем партиалы, чтобы разбить фрагменты HTML на отдельные модульные компоненты и уменьшить количество повторений. Частичные переменные имеют тот же контекст переменной, что и шаблон, который их отображал, поэтому, как есть, у вас не возникнет никаких проблем, просто переместив ссылки на свою частичную, и все должно просто работать.
Тем не менее, я думаю, что лучшей практикой было бы передавать переменную вашего экземпляра как локальную, чтобы уменьшить связь с вашим контроллером. Что-то вроде:
Ваш взгляд:
<%= render :partial =>'form',
:locals => {:page_title => t(:'<h2>Editing Feature</h2>'),
:feature => @feature} %>
_form.html.erb:
<%= link_to 'Show', feature %> |
<%= link_to 'Back', features_path %>
Таким образом, если вы хотите визуализировать частичное в другом месте вашего приложения, вам не нужно иметь под рукой переменную экземпляра. Примером ситуации, в которой это может быть полезно, является циклический просмотр нескольких "функций" (в виде представления индекса) и выплевывание соответствующего HTML, как определено в частичном.