lecture 1. Rails intro Flashcards
Model-View-Controller (MVC)
Model-View-Controller (MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») — схема разделения данных приложения и управляющей логики на три отдельных компонента: модель, представление и контроллер — таким образом, что модификация каждого компонента может осуществляться независимо.
Конечный пользователь обращается к view, который обращается к контроллеру. Контроллер достаёт необходимую модель согласно бизнес-логике и возвращает view, с которым пользователь работал.
Модель (Model)
Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя своё состояние
Представление (View)
Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели.
Контроллер (Controller)
Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений.
Парадигмы Rails
CoC (Convention over Configuration)
DRY
ActiveRecord
CoC (Convention over Configuration)
Любые действия выполняются без дополнительной конфигурации. Если файл правильно назван и добавлен в нужное место, то он автоматически подтянется в проект.
ActiveRecord
Парадигма, позволяющая легко мапить данные объектов в коде в базу данных
как настроить новое rails приложение?
установить rails на систему
$ rails new <название_проекта>
-T приложение без тестов (unit test по умолчанию)
-d <название_бд> настройка базы данных (sql lite по умолчанию)</название_бд></название_проекта>
что хранится в app?
большинство кода
что хранится в bin?
скрипты для настройки приложения
что хранится в config?
вся конфигурация
что хранится в db?
сиды, миграции и шемы базы данных
что хранится в lib?
кастомные решения и код, который напрямую не относится к бизнес-логике
что хранится в log?
логи рельсы
что хранится в public?
данные, которые будут сёрвиться и будут доступны в браузере
что хранится в storage?
файлы изображений и тд
что хранится в tmp?
кеш, необходимый для работы, пиды (id процесса рельсы при запуске сервера) и тд
как запустить рельсу?
засетапить бд (добавить
username: postgres
password: postgres
) в database.yml
$ rails db:create
$ rails s
как создать модель и views с помощью rake?
$ rails g (generate) scaffold <название_модели> <параметры></параметры></название_модели>
что делает миграция?
добавляет изменения в бд
как сделать поле обязательным?
null: false
как применить миграцию к базе данных?
$ rails db:migrate
как создаются поля таблицы created_at, updated_at?
они создаются по дефолту с помощью метода t.timestamps
что делает routes?
отображает действия с приложением через браузер
resources :cars означает наличие пути …/cars