Лучшее использование партиалов с вкладками - PullRequest
1 голос
/ 23 марта 2012

Ради простоты, скажем, у меня есть что-то вроде

<div class='important_class'>
    <%= @model.attribute %>
</div>

Представьте, что important_class div на самом деле представляет собой большую иерархию div, и там было как 7 закрывающих тегов. А теперь представьте, что у меня есть 5 видов, которые выглядят одинаково, кроме содержимого в центре, где у меня могут быть @model1.attribute, model2.attribute и так далее. Как лучше всего использовать партиалы в этом случае?

Предлагаемое решение 1

Создайте 2 части с именами _top_part.html.erb и _bottom_part.html.erb, которые содержат верхнюю и нижнюю части, а затем используйте их в разных представлениях. И код будет выглядеть как

<%= render 'top_part' %>
    <%= @model.attribute %>
<%= render 'bottom_part' %>

Предлагаемое решение 2

На уровне контроллера передайте переменную в представление, чтобы определить, какую часть визуализировать, она будет выглядеть примерно так:

<div class='important_class'>
    <%= render @place+'_partial' %>
</div>

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

Предложения

1 Ответ

0 голосов
/ 23 марта 2012

Если ваши модели отличаются, вы можете просто сделать

<div class='important_class'>
    <%= render @model %>
</div>

Например, предположим, у вас есть 2 модели Car и Bus, он будет искать 2 партиала с именем _car.html.erb и_bus.html.erb

Я не уверен, что это то, что вы спрашиваете: - \

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...