Этот пост представляет собой небольшую заметку о компонентах, которыми нужно владеть Ruby on Rails разработчику.
В прошлых постах я довольно подробно рассмотрел основы Ruby и Rails, но возможно у меня не хватит времени на разбор чуть более продвинутых компонентов. Которые, впрочем, вы можете изучить и самостоятельно, зная основы.
Что такое ORM
ORM сопоставляет объект и реляционную базу данных.
Object-relational mapping — объектно-реляционное сопоставление.
Это сопоставление убирает разрыв между реляционными базами данных, которые спроектированы на основе математической теории множеств, и объектно-ориентированными языками программирования, которые имеют дело с объектами и их поведением.
Также ORM упрощает написание кода для доступа к базе данных.
В Rails, Модель обычно использует какой-то ORM-фреймворк.
Фреймворком по умолчанию является Active Record.
Базы данных
SQLite довольно легкая и простая база данных, но для большинства проектов вам могут понадобиться такие базы данных как PostgreSQL или MongoDB.
Postgres является объектно-реляционной базой данных, она хорошо подходит для хранения разнообразной информации.
MongoDB является NoSQL базой данных, она использует JSON-подобные документы. Она также подходит для хранения больших объемов данных или медиафайлов.
Иногда вам могут встречаться прочие БД, например MySQL.
CRUD
CRUD (create, read, update, delete) — четыре базовые функции, используемые при работе с базами данных и прочими хранилищами информации:
- Создание
- Чтение
- Редактирование
- Удаление
Пример:
Операция | SQL-оператор | HTTP-операция |
---|---|---|
Создание (create) | INSERT | POST |
Чтение (read) | SELECT | GET |
Редактирование (update) | UPDATE | PUT или PATCH |
Удаление (delete) | DELETE | DELETE |
Также CRUD может означать пользовательский интерфейс с такими функциями.
Кроме того, я бы порекомендовал обратить внимание на аутентификацию и авторизацию (в том числе советую посмотреть Devise и OAuth), обратить внимание на безопасность (к примеру, избежание SQL-инъекций).
Ах да, еще добавлю, что в качестве хостинга для MongoDB хорошо подходит mLab.
Они чем-то похожи на Heroku, но они предоставляют базу данных как сервис.
На Heroku можно размещать PostgreSQL, но она не всегда подходит.
К примеру, если вам нужно размещать изображения пользователей, для этого отлично подойдет отдельная база данных MongoDB.
Вообще, иногда можно хранить изображения прямо в файловой системе, но Heroku этого не позволяет.