В веб-фреймворке Ruby on Rails есть отличная возможность подключить новый шаблонизатор haml вместо имеющегося стандартного erb-шаблонизатора. Для этого достаточно в Gemfile проекта добавить строчку:
gem "haml"
Так выглядит erb-шаблон для отображения товаров - index.html.erb:
А вот тот же шаблон с использованием haml - index.html.haml:
Если вы используете в работе Ruby on Rails, использование шаблонизатора haml позволит вам сократить количество кода в ваших шаблонах и сделает их более читаемыми. Поначалу может показаться, что нет смысл учить чью-то придумку, ведь есть старый добрый html. Однако в больших проектах кода много и его читаемость можно улучшить применив этот шаблонизатор. Кроме того, правила haml-шаблонизатора весьма просты, освоить их можно минут за 20, проделав самостоятельно примеры, приведенные на официальном сайте шаблонизатора haml.
Также есть аналогичный шаблонизатор - slim, синтаксис которого еще лучше. Однако, у нас в проекте используется haml, поскольку "так исторически сложилось".
gem "haml"
Так выглядит erb-шаблон для отображения товаров - index.html.erb:
<h1>Listing products</h1>
<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>
<table class="products">
<% @products.each do |product| %>
<tr class="<%= cycle('list_line_odd', 'list_line_even') %>">
<td>
<%= image_tag(product.image_url, class: 'list_image') %>
</td>
<td class="list_description">
<dl>
<dt><%= product.title %></dt>
<dd><%= truncate(strip_tags(product.description),
length: 80) %></dd>
</dl>
</td>
<td class="list_actions">
<%= link_to 'Показать', product %><br/>
<%= link_to 'Ред.', edit_product_path(product) %><br/>
<%= link_to 'Удалить', product, method: :delete,
data: { confirm: I18n.t('app.delete_confirm') } %>
</td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New product', new_product_path %>
А вот тот же шаблон с использованием haml - index.html.haml:
%h1 Listing products
- if notice
%p#notice= notice
%table.products
- @products.each do |product|
%tr{class: "#{cycle('list_line_odd', 'list_line_even')}"}
%td
%p= image_tag(product.image_url, class: 'list_image')
%td.list_description
%dl>
%dt= product.title
%dd= truncate(strip_tags(product.description), length: 80)
%td.list_actions
= link_to 'Показать', product
%br/
= link_to 'Ред.', edit_product_path(product)
%br/
= link_to 'Удалить', product, method: :delete, data: { confirm: I18n.t('app.delete_confirm') }
%p= link_to 'New product', new_product_path
Если вы используете в работе Ruby on Rails, использование шаблонизатора haml позволит вам сократить количество кода в ваших шаблонах и сделает их более читаемыми. Поначалу может показаться, что нет смысл учить чью-то придумку, ведь есть старый добрый html. Однако в больших проектах кода много и его читаемость можно улучшить применив этот шаблонизатор. Кроме того, правила haml-шаблонизатора весьма просты, освоить их можно минут за 20, проделав самостоятельно примеры, приведенные на официальном сайте шаблонизатора haml.
Также есть аналогичный шаблонизатор - slim, синтаксис которого еще лучше. Однако, у нас в проекте используется haml, поскольку "так исторически сложилось".
Комментариев нет:
Отправить комментарий