0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом уроке рассмотрим структуру проекта на Rails.</p>
1
<p>В этом уроке рассмотрим структуру проекта на Rails.</p>
2
<h2>Структура проекта</h2>
2
<h2>Структура проекта</h2>
3
<p>При создании нового проекта на Rails с помощью команды rails new my_app создается предопределенная структура каталогов. Основные директории включают:</p>
3
<p>При создании нового проекта на Rails с помощью команды rails new my_app создается предопределенная структура каталогов. Основные директории включают:</p>
4
<ul><li><em>app/</em>: здесь находятся основные компоненты приложения:<ul><li><em>models/</em>: модели данных.</li>
4
<ul><li><em>app/</em>: здесь находятся основные компоненты приложения:<ul><li><em>models/</em>: модели данных.</li>
5
<li><em>views/</em>: шаблоны для отображения.</li>
5
<li><em>views/</em>: шаблоны для отображения.</li>
6
<li><em>controllers/</em>: контроллеры, обрабатывающие запросы.</li>
6
<li><em>controllers/</em>: контроллеры, обрабатывающие запросы.</li>
7
<li><em>helpers/</em>: вспомогательные модули.</li>
7
<li><em>helpers/</em>: вспомогательные модули.</li>
8
<li><em>assets/</em>: статические файлы (CSS, JavaScript, изображения).</li>
8
<li><em>assets/</em>: статические файлы (CSS, JavaScript, изображения).</li>
9
</ul></li>
9
</ul></li>
10
<li><em>config/</em>: файлы конфигурации приложения, включая маршруты и настройки среды.</li>
10
<li><em>config/</em>: файлы конфигурации приложения, включая маршруты и настройки среды.</li>
11
<li><em>db/</em>: миграции и схемы базы данных.</li>
11
<li><em>db/</em>: миграции и схемы базы данных.</li>
12
<li><em>lib/</em>: дополнительные библиотеки и модули.</li>
12
<li><em>lib/</em>: дополнительные библиотеки и модули.</li>
13
<li><em>log/</em>: файлы журналов приложения.</li>
13
<li><em>log/</em>: файлы журналов приложения.</li>
14
<li><em>test/</em>или<em>spec/</em>: тесты для приложения.</li>
14
<li><em>test/</em>или<em>spec/</em>: тесты для приложения.</li>
15
</ul><h2>Окружение</h2>
15
</ul><h2>Окружение</h2>
16
<p>Rails поддерживает несколько окружений по умолчанию:</p>
16
<p>Rails поддерживает несколько окружений по умолчанию:</p>
17
<ul><li>development: для разработки.</li>
17
<ul><li>development: для разработки.</li>
18
<li>test: для запуска тестов.</li>
18
<li>test: для запуска тестов.</li>
19
<li>production: для рабочего приложения.</li>
19
<li>production: для рабочего приложения.</li>
20
</ul><p>Каждое окружение может иметь свои настройки в файле config/environments/*.rb. Там же можно создать новое окружение.</p>
20
</ul><p>Каждое окружение может иметь свои настройки в файле config/environments/*.rb. Там же можно создать новое окружение.</p>
21
<p>У каждого окружения могут быть свои зависимости.<a>Например</a>для локальной разработки мы можем использовать базу данных SQLite, а для продакшена - PostgreSQL:</p>
21
<p>У каждого окружения могут быть свои зависимости.<a>Например</a>для локальной разработки мы можем использовать базу данных SQLite, а для продакшена - PostgreSQL:</p>
22
<h2>Модели</h2>
22
<h2>Модели</h2>
23
<p>Модели в Rails представляют данные и бизнес-логику. Они обычно наследуются от ActiveRecord::Base, что позволяет им взаимодействовать с базой данных.<a>Пример</a>модели резюме из Hexlet CV:</p>
23
<p>Модели в Rails представляют данные и бизнес-логику. Они обычно наследуются от ActiveRecord::Base, что позволяет им взаимодействовать с базой данных.<a>Пример</a>модели резюме из Hexlet CV:</p>
24
<h2>Миграции</h2>
24
<h2>Миграции</h2>
25
<p>Миграции позволяют управлять изменениями в структуре базы данных. Они записываются в виде отдельных файлов в каталоге db/migrate.<a>Пример</a>миграции для создания таблицы пользователей:</p>
25
<p>Миграции позволяют управлять изменениями в структуре базы данных. Они записываются в виде отдельных файлов в каталоге db/migrate.<a>Пример</a>миграции для создания таблицы пользователей:</p>
26
<h2>Роутинг</h2>
26
<h2>Роутинг</h2>
27
<p>Роутинг в Rails управляет тем, как запросы направляются к контроллерам. Файл маршрутов находится в config/routes.rb.<a>Пример</a>файла с маршрутами:</p>
27
<p>Роутинг в Rails управляет тем, как запросы направляются к контроллерам. Файл маршрутов находится в config/routes.rb.<a>Пример</a>файла с маршрутами:</p>
28
<h2>Контроллеры</h2>
28
<h2>Контроллеры</h2>
29
<p>Контроллеры обрабатывают запросы и взаимодействуют с моделями. Они находятся в каталоге app/controllers.<a>Пример</a>контроллера для пользователей:</p>
29
<p>Контроллеры обрабатывают запросы и взаимодействуют с моделями. Они находятся в каталоге app/controllers.<a>Пример</a>контроллера для пользователей:</p>
30
<h2>Представления</h2>
30
<h2>Представления</h2>
31
<p>Представления (views) отвечают за отображение данных пользователю. Они находятся в каталоге app/views. Каждое действие контроллера имеет соответствующий файл в виде HTML-шаблона (обычно с расширением .html.erb или .html.slim). Например, для метода index контроллера UsersController будет файл app/views/users/index.html.erb.</p>
31
<p>Представления (views) отвечают за отображение данных пользователю. Они находятся в каталоге app/views. Каждое действие контроллера имеет соответствующий файл в виде HTML-шаблона (обычно с расширением .html.erb или .html.slim). Например, для метода index контроллера UsersController будет файл app/views/users/index.html.erb.</p>
32
<p><a>Пример</a>представления для отображения страницы резюме с помощью шаблонизатора Slim:</p>
32
<p><a>Пример</a>представления для отображения страницы резюме с помощью шаблонизатора Slim:</p>
33
<h2>Генераторы</h2>
33
<h2>Генераторы</h2>
34
<p>Rails предоставляет генераторы, которые помогают быстро создавать модели, контроллеры, миграции и другие компоненты. Например, чтобы создать модель пользователя с миграцией, используйте:</p>
34
<p>Rails предоставляет генераторы, которые помогают быстро создавать модели, контроллеры, миграции и другие компоненты. Например, чтобы создать модель пользователя с миграцией, используйте:</p>
35
<p>Это создаст файл модели и соответствующую миграцию. Для отмены изменений используйте destroy:</p>
35
<p>Это создаст файл модели и соответствующую миграцию. Для отмены изменений используйте destroy:</p>
36
<p>Список всех генераторов можно посмотреть командой bin/rails generate</p>
36
<p>Список всех генераторов можно посмотреть командой bin/rails generate</p>
37
<h2>Выводы</h2>
37
<h2>Выводы</h2>
38
<p>Мы рассмотрели ключевые компоненты структуры проекта на Rails, которые позволяют организовать разработку веб-приложений.</p>
38
<p>Мы рассмотрели ключевые компоненты структуры проекта на Rails, которые позволяют организовать разработку веб-приложений.</p>
39
<ul><li>Команда rails new <app_name> создает новый проект..</li>
39
<ul><li>Команда rails new <app_name> создает новый проект..</li>
40
<li>Окружение определяет настройки и конфигурации для разработки, тестирования и продакшена, что обеспечивает гибкость в работе приложения.</li>
40
<li>Окружение определяет настройки и конфигурации для разработки, тестирования и продакшена, что обеспечивает гибкость в работе приложения.</li>
41
<li>Модели описывают данные и бизнес-логику приложения, связывая их с базой данных через Active Record.</li>
41
<li>Модели описывают данные и бизнес-логику приложения, связывая их с базой данных через Active Record.</li>
42
<li>Миграции служат для управления изменениями в схеме базы данных, позволяя легко вносить изменения в структуру данных.</li>
42
<li>Миграции служат для управления изменениями в схеме базы данных, позволяя легко вносить изменения в структуру данных.</li>
43
<li>Роутинг отвечает за определение URL-адресов и связывание их с соответствующими контроллерами и действиями.</li>
43
<li>Роутинг отвечает за определение URL-адресов и связывание их с соответствующими контроллерами и действиями.</li>
44
<li>Контроллеры обрабатывают запросы, управляют потоком данных и взаимодействуют с моделями и представлениями.</li>
44
<li>Контроллеры обрабатывают запросы, управляют потоком данных и взаимодействуют с моделями и представлениями.</li>
45
<li>Представления отвечают за отображение данных пользователю и формируют пользовательский интерфейс приложения.</li>
45
<li>Представления отвечают за отображение данных пользователю и формируют пользовательский интерфейс приложения.</li>
46
<li>Генераторы упрощают создание шаблонов, моделей, контроллеров и других компонентов, что ускоряет разработку.</li>
46
<li>Генераторы упрощают создание шаблонов, моделей, контроллеров и других компонентов, что ускоряет разработку.</li>
47
</ul>
47
</ul>