Комментарии 6
естественно, опрос относится к тем людям, которые используют для HTML-шаблонизации embedded/inline средства языка (т.е. к примеру <% %> или <? ?>).
сам опрос возник на основе следующего недавнего диспута с коллегами:
есть очень похожий код в html.erb для отображения классов RssItem, BlogItem, NewsItem, пример:
В хелпере оно было бы похоже на что-то вроде
Куда лучше это вынести, в partial или helper, до сих пор решить не можем.
сам опрос возник на основе следующего недавнего диспута с коллегами:
есть очень похожий код в html.erb для отображения классов RssItem, BlogItem, NewsItem, пример:
<% if current_user %>
<footer>
<%= marks_bar(@item) %>
<%= favorite_button(@item, "blog_item") || delete_from_favorite_button(@item, "blog_item") %>
<%= share_button(@item) %>
<% if current_user.is_mine?(@item) %>
<%= link_to "Edit", edit_user_blog_item_path(current_user, @item) %>
<% end %>
</footer>
<% end %>
В хелпере оно было бы похоже на что-то вроде
def toolbar_for(item, type_str, edit_path)
if current_user
content_tag(:footer) do |b|
marks_bar(item).to_s <<
(delete_from_favorite_button(item, type_str) || favorite_button(@item, type_str)).to_s <<
share_button(@item).to_s <<
(content_tag(:div) { link_to("Edit", edit_path) } if current_user.is_mine?(@item)).to_s
end
end
end
Куда лучше это вынести, в partial или helper, до сих пор решить не можем.
0
В Django я бы сделал inclusion_tag. Т.е. хэлпер, результат работы которого рендирится в связанный шаблон.
Если бы со временем логика слишком усложнилась, можно было бы сделать обычный тег, при этом не меняя ничего в шаблонах.
Если бы со временем логика слишком усложнилась, можно было бы сделать обычный тег, при этом не меняя ничего в шаблонах.
+1
Вот для таких штук и удобно использовать интерпретаторы типа haml…
Лично мой подход такой: если код должен вернуть больше одного тега в результате — нужен партиал.
Лично мой подход такой: если код должен вернуть больше одного тега в результате — нужен партиал.
0
Рисую веб-контролы периодически, получается несколько удобнее и прозрачнее, чем классический PartialView.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Partials VS Helper methods: как вы отDRYиваете код в представлении?