Шпаргалка по 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