Шпаргалка по Ruby on Rails
Шаг 1. Начните новый проект Rails:
rails new app_name
Шаг 2. Создайте модели с атрибутами
(«Cd» в папку app_folder, созданную на шаге 1)
rails g scaffold model_A attribute:attribute_type rails g scaffold model_B attribute:attribute_type rails g scaffold model_C attribute:attribute_type
Шаг 3. Настройте связи
(в ваших моделях)
Модель А:
has_many :C has_many :B, through: :C
Модель B:
has_many :C has_many :A, through: :C
Модель C:
belongs_to :A belongs_to :B
Шаг 4. Переход к базе данных
rails db:migrate
Шаг 5. Запустите сервер
rails s
Скопируйте и вставьте ссылку в свой терминал после «Прослушивание по tcp:»
Поздравляю!
Вы сделали.
У вас есть собственное веб-приложение.
Объяснение каждого шага;
Шаг 0: нарисуйте свое веб-приложение
Прежде чем мы создадим наше приложение на Ruby on Rails. Мы должны знать основные модели, которые мы будем использовать в приложении, с их атрибутами и ассоциациями. Нам не нужно знать каждую модель и атрибуты, поскольку мы всегда можем добавить больше позже, но мы должны иметь общее представление о том, какое приложение мы создаем.
Шаг 1. Начните новый проект Rails:
rails new app_name
Это создает для нас папку со всеми файлами rails. Затем мы переместим каталог в нашу новую папку.
Шаг 2. Создайте модели с атрибутами
rails g scaffold model_A attribute:attribute_type rails g scaffold model_B attribute:attribute_type rails g scaffold model_C attribute:attribute_type
Примечание. Модели A, B, C являются моделями-заполнителями для любых моделей, которые вы хотите использовать. Атрибут и тип атрибута также являются заполнителями для ваших атрибутов и типов атрибутов. Единственный синтаксис в этом коде - rails g scaffold
Это настраивает наши модели (классы), наши контроллеры, файлы представления для каждой модели и маршруты (краткий обзор MVC приведен ниже). Мы также можем использовать:
rails g resource model_A attribute:attribute_type
Это не привело бы к настройке наших файлов представления и методов контроллера для каждой модели, но если бы мы хотели настроить методы контроллера и ресурсы файлов представления, было бы лучшим вариантом, чем scaffold.
Примечание: если нам нужно удалить какой-либо из наших классов, мы можем просто сделать rails d scaffold model_A
Шаг 3. Настройте связи
Мы углублялись в каждую модель и вводили ассоциации. Например, если у A много B, а у B много A. C будет соединителем, который принадлежит A и B. A будет принадлежать B через C, а B будет принадлежать от A до C. Чтобы показать эту ассоциацию, мы собираемся написать :
Модель А:
has_many :C has_many :B, through: :C
Модель B:
has_many :C has_many :A, through: :C
Модель C:
belongs_to :A belongs_to :B
Для получения дополнительной информации об объединениях в рельсах перейдите по ссылке: https://guides.rubyonrails.org/association_basics.html
Шаг 4. Переход к базе данных
rails db:migrate
Мы бы перенесли наши классы и атрибуты в нашу базу данных, чтобы настроить нашу базу данных. Важно, чтобы наши ассоциации были созданы так, чтобы рельсы знали, как соединять модели при необходимости. Проверьте «schema.rb» в папке db, чтобы убедиться, что наша миграция завершена и наша база данных настроена так, как мы хотим.
Примечание. Если схема не настроена так, как мы хотим; НЕ меняйте схему. Схема - это просто окно в базу данных. Изменение схемы не приведет к изменению базы данных. На этом этапе лучшее, что можно сделать для внесения изменений в базу данных, - это сделать rails db:rollback
, изменить файлы миграции и снова сделать rails db:migrate
. Вы можете проверить свой статус переноса с помощью rails db:migrate:status
Шаг 5. Запустите сервер
rails s
Это запустит наш сервер, и мы сможем скопировать и вставить ссылку после «Прослушивание по tcp:», чтобы запустить приложение в нашем браузере. У нас может не быть доступа ко всем нашим страницам без правильного URL-адреса. Чтобы увидеть каждый URL-адрес в нашем приложении, мы можем ввести rails routes
в нашем терминале. Это даст нам доступ ко всем нашим маршрутам и URL-адресам. Мы всегда можем остановить сервер, нажав ctrl
+ c
.
Краткий обзор MVC:
MVC означает модель, представление и контроллер. Модель контролирует логику работы с базой данных. Представление контролирует материал внешнего интерфейса, который увидит пользователь приложения, а контроллер заботится о логике между моделью и представлением. Использование MVC упрощает отладку ошибок.
Методы, настроенные в наших контроллерах:
Новый: логика для запуска нового экземпляра. Эта функция отобразит приложение на новой странице просмотра
create: принимает все параметры (значение для каждого атрибута, введенного в форму, на новой странице) и создает экземпляр в базе данных.
show: отобразит страницу шоу с использованием идентификатора экземпляра.
index: будет снабжать индексную страницу всеми экземплярами этого класса и отображать индексную страницу.
edit: найдет экземпляр, который мы хотим отредактировать, с помощью редактирования и отобразит страницу просмотра редактирования.
update примет информацию со страницы редактирования просмотра с помощью параметров и обновит информацию в нашей базе данных.
delete: обычно запускается кнопкой на странице показа, которая удаляет экземпляр.
Частные методы: методы, доступные только контроллеру.
set_user: это вспомогательный метод, созданный, чтобы помочь другому методу установить, к какому экземпляру класса следует обращаться.
user_params: Rails имеет систему аутентификации, которая позволяет программисту разрешать или ограничивать определенные атрибуты в формах. Эти разрешения предоставляются в этом методе.
Назначение ключевых страниц просмотра
Новый - это представление для создания нового экземпляра модели.
Показать - это представление для отображения экземпляра.
Редактировать - это представление для редактирования экземпляра.
Индекс - это представление для всех экземпляров в классе.
_form - это обычно форма, которую мы используем для создания и редактирования
Полезные советы и ресурсы:
Мы можем открыть консоль для тестирования кодов в терминале, используя rails c
Мы можем остановить приложение и проверить, как оно работает, используя «byebug» в теле кода.
Мы можем быстро вносить изменения в нашу базу данных, используя rails g migration
.
Для получения дополнительной информации о командах rails перейдите по ссылке: https://guides.rubyonrails.org/command_line.html