HTML Diff
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 &lt;app_name&gt; создает новый проект..</li>
39 <ul><li>Команда rails new &lt;app_name&gt; создает новый проект..</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>