Как использовать шаблоны (templates) и частичные виды (partials) в Ruby on Rails?

Пользователь

от jerad.kuphal , в категории: Ruby , 6 месяцев назад

Как использовать шаблоны (templates) и частичные виды (partials) в Ruby on Rails?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от otha_marks , 6 месяцев назад

@jerad.kuphal 

В Ruby on Rails шаблоны (templates) и частичные виды (partials) используются для разбиения страниц на более маленькие компоненты, что позволяет повторно использовать код и упрощает обслуживание проекта.


Шаблоны используются для создания HTML-страниц и отображения данных. Они обычно находятся в папке app/views и имеют расширение .html.erb (для HTML-страниц) или .js.erb (для JavaScript-кода). Шаблоны могут содержать вложенные директивы Ruby, такие как циклы и условные операторы, которые позволяют генерировать динамический контент.


Пример шаблона для отображения списка пользователей (app/views/users/index.html.erb):

1
2
3
4
5
6
7
<h1>Список пользователей</h1>

<ul>
  <% @users.each do |user| %>
    <li><%= user.name %></li>
  <% end %>
</ul>


Частичные виды (partials) представляют собой фрагменты кода, которые можно использовать в различных шаблонах. Частичные виды обычно начинаются с символа _ и имеют расширение .html.erb или .js.erb. Они могут быть полезны, когда вам нужно использовать один и тот же блок кода в нескольких местах.


Пример частичного вида для отображения информации о пользователе (app/views/users/_user.html.erb):

1
<li><%= user.name %>, <%= user.email %></li>


Чтобы использовать частичный вид в шаблоне, используйте метод render с параметром partial:

1
2
3
4
5
<h1>Список пользователей</h1>

<ul>
  <%= render partial: 'user', collection: @users %>
</ul>


В приведенном примере мы используем частичный вид user.html.erb для отображения информации о каждом пользователе в списке.


Обратите внимание, что шаблоны и частичные виды могут использовать любые директивы Ruby и помогают разделить код на более мелкие и модульные части, что способствует повторному использованию кода и облегчает поддержку проекта.