Навчальний посібник Ruby on Rails
⚡ Розумний підсумок
У посібнику з Ruby on Rails представлено веб-фреймворк з відкритим кодом, написаний на Ruby, який є основою для Airbnb, GitHub та Shopify. Покрокове керівництво охоплює встановлення на Windows, Mac та Linux, генератори Rails, маршрутизація, представлення, ActiveRecord, перевірки та налагодження.

Що таке Ruby?
рубін — це високорівнева, інтерпретована, об'єктно-орієнтована мова програмування. Це динамічна мова з відкритим вихідним кодом, що стоїть за нею з великою спільнотою. Ruby був розроблений для простоти та продуктивності. Він заохочує написання програмного коду, який орієнтований на людину, а не на комп'ютер. Юкіхіро Мацумото створив Ruby в Японії в 1995 році.
Що таке Rails?
Rails — це фреймворк розробки, написаний на Ruby для створення веб-додатків. Він був створений як основа застосунку Basecamp, а потім випущений як програмне забезпечення з відкритим кодом у 2004 році. Rails пропонує багато вбудованих стандартних функцій та можливостей, що робить його підходящим вибором для MVP-прототипування.ping та швидкий розвиток продукту.
Rails був створений Девідом Хайнемайєром Ханссоном, більш відомим як DHH. Це один з найвпливовіших і найпопулярніших інструментів для створення веб-додатків. Його використовують такі великі сайти, як Airbnb, GitHub і Shopify.
Чому Rails?
Перш ніж встановлювати ланцюжок інструментів, варто зрозуміти, чому Rails залишається популярним вибором для суднобудування.ping веб-додатки швидко.
- Rails упакований як gem-комп'ютер Ruby, і ви можете використовувати його для створення широкого спектру застосунків.
- Це дозволяє створювати звичайні веб-додатки, сайти електронної комерції, системи управління контентом тощо.
- Rails — це повноцінний фреймворк, який включає все необхідне для створення веб-застосунку на базі даних з використанням шаблону Model-View-Controller (MVC).
- Усі шари розроблені для безперебійної взаємодії, тому проєкти Rails зазвичай потребують менше рядків коду, ніж еквівалентні проєкти в інших фреймворках.
Як завантажити та встановити Ruby на Windows
Процес встановлення залежить від вашої операційної системи. У наступних розділах розглядається встановлення Ruby на Windows, Mac та Linux.
Крок 1) Завантажте інсталятор Ruby.
Найпростіший спосіб інсталювати Ruby на вашому Windows комп'ютер через інсталятор Ruby, доступний за адресою https://rubyinstaller.org/.
Після завантаження запустіть інсталятор.
Крок 2) Натисніть на завантажений інсталятор.
Double-натисніть, наприклад, на завантажений файл інсталятора rubyinstaller-2.4.1-2-x64.exe.
Крок 3) Прийміть ліцензію.
Виберіть перемикач «Я приймаю ліцензію» та натисніть кнопку «Далі». Ви повинні побачити екран нижче.
Крок 4) Поставте позначки у перших двох прапорцях.
Позначте перші два прапорці, щоб спростити виконання сценаріїв Ruby.
Натисніть кнопку «Встановити», щоб розпочати встановлення. Після завершення ви повинні побачити екран нижче.
Крок 5) Натисніть кнопку Готово.
Не знімайте позначку з опції, яка встановлює MSYS2. Натисніть кнопку «Готово», щоб завершити встановлення. Відкриється вікно командного рядка, як показано нижче.
Крок 6) Встановіть MSYS2.
На цьому кроці встановлюється MSYS2, платформа збірки, яка містить менеджер пакетів для легкого встановлення пакетів на Windows.
Натисніть Enter, щоб встановити всі компоненти, оскільки всі вони необхідні для безперебійної роботи середовища розробки Ruby on Rails на Windows.
Встановлення рейок
У вас має бути встановлено Ruby з попереднього розділу. Далі встановіть Rails. Ви можете встановити Rails за допомогою пакета з RailsInstaller, але пакет часто не постачає найновішу версію кожної необхідної залежності.
Якщо у вас вже встановлено останню версію Ruby, базові RubyGems та розширення, просто виконайте таку команду в командному рядку, щоб встановити Rails у вашій системі: gem install rails.
Вам також потрібно буде встановити Node.js якщо у вас його ще немає, оскільки деякі бібліотеки, від яких залежить Rails, вимагають JavaДля коректної роботи середовища виконання скрипта. Отримайте Node за адресою https://nodejs.org.
Більш поширений та бажаний підхід до Windows це використовувати Windows Підсистема для Linux. Вона забезпечує середовище GNU/Linux з інструментами командного рядка, утилітами та поширеними програмами безпосередньо всередині. Windows.
Встановлення Ruby на Mac
На вашому Mac вже попередньо встановлено Ruby. Однак попередньо встановлена версія часто застаріла, тому вам слід встановити новішу версію.
Найпростіший спосіб зробити це – скористатися менеджером пакетів, таким як HomebrewМожливо, спочатку вам доведеться встановити Homebrew, виконавши команду нижче в терміналі.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
З’явиться попередження та запит на введення пароля. Введіть пароль Mac (символи не відображаються під час введення) та натисніть Enter після завершення. Потім виконайте цю команду Homebrew, щоб встановити Ruby на Mac.
brew install ruby
Потім виконайте цю команду:
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
Це встановлює нову інсталяцію Ruby як Ruby за замовчуванням у вашій системі замість попередньо встановленого Ruby.
Щоб підтвердити успішне встановлення, виконайте наступну команду в терміналі:
ruby --version
Це виводить номер встановленої вами версії Ruby. Вивід виглядає приблизно так:
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Встановлення Ruby на Ubuntu (Linux)
Найпростіший спосіб встановити Ruby на Ubuntu через менеджер пакетів apt. Виконайте наступні команди в терміналі, щоб встановити останню версію Ruby з Ubuntu сховища.
- sudo apt update – Це оновлює значення за замовчуванням Ubuntu сховища.
- sudo apt встановити ruby-full – Це завантажує та встановлює останню версію Ruby.
Щоб підтвердити встановлення, запустіть ruby –версіяЦе виведе встановлену вами версію Ruby.
Встановлення Rails на Ubuntu (Linux)
Виконайте наведені нижче кроки, щоб встановити Rails на ваш комп'ютер з Linux.
Крок 1) Оновіть свій менеджер gem-коду, запустивши оновлення дорогоцінного каміння – система у терміналі або командному рядку.
Крок 2) прогін встановлення рейки для дорогоцінного каміння щоб інсталювати останню версію Rails на вашому комп’ютері.
Крок 3) Встановіть гем-компонент bundler для легкого керування залежностями гем-компонентів Rails-застосунку. Запустіть. gem install bundler.
Два принципи рейок
Rails дотримується основних принципів проектування програмного забезпечення та заохочує вас також їх використовувати.
Два найпоширеніші:
- Не повторюйся (DRY) – це призводить до лаконічного, послідовного та зручного в обслуговуванні коду.
- Конвенція про конфігурацію – Rails попередньо налаштовано з розумними значеннями за замовчуванням, які відповідають більшості поширених застосувань. Це пришвидшує розробку застосунків і зменшує кількість коду для обслуговування.
Rails – Структури файлів проекту
Встановивши Rails на вашій системі, створіть Rails-застосунок. У наступних розділах буде розглянуто приклад Ruby on Rails, де буде створено застосунок зі списком справ. Виконайте таку команду у вашому терміналі, щоб створити застосунок:
rails new todo_app
Ця команда створює каталог під назвою додаток_списку_завдань у поточному каталозі з базовою структурою папок веб-застосунку Rails, як показано нижче.
Ось основні каталоги, згенеровані для проєкту:
додаток – групує підкаталоги для інтерфейсу користувача/макета (представлення та допоміжні програми), контролера (файли контролерів) та моделей (бізнес/логіка додатків).
додаток/контролери – зберігає файли контролерів, що використовуються Rails для обробки запитів від клієнта.
додаток/активи – містить статичні файли, необхідні для фронтенду застосунку, згруповані за типом: JavaScript файли, зображення та таблиці стилів.
додаток/помічники – містить допоміжні функції, які забезпечують фокусування, компактність та зручність роботи з моделлю, виглядом та логікою контролера вашої програми.
додаток/моделі – містить файли, що моделюють базу даних вашої програми. Класи моделей значно спрощують роботу з базою даних.
додаток/перегляди – містить файли шаблонів/макетів, з якими взаємодіє користувач вашої програми. Шаблони поєднують HTML з даними з бази даних.
Бен – містить Rails-скрипти, які запускають вашу програму. Він також може містити інші скрипти, які ви використовуєте для налаштування та оновлення програми.
конфиг – містить файли конфігурації, такі як database.yml, environment.rb, routes.rbтощо, які потрібні для роботи вашої програми.
db – містить файли та скрипти, що використовуються для керування базою даних вашої програми.
либ – містить розширені модулі для вашої програми.
журнал – містить файли журналів, такі як server.log, development.log, test.log і production.log, що використовується для налагодження або моніторингу вашої програми.
громадськість – містить статичні файли та скомпільовані ресурси, такі як HTML-файли, JavaФайли скриптів, зображення та таблиці стилів.
тест – містить тестові файли, які ви пишете для перевірки функціональності вашої програми.
tmp – містить тимчасові файли, такі як кеш та pid-файли.
продавець – містить сторонні бібліотеки.
Gemfile – визначає основні вимоги до гемів для запуску вашої веб-програми. Ви можете групувати геми в розробницькі, тестові або продакшн, і Rails знатиме, коли включати кожен гем.
Gemfile.lock – на відміну від Gemfile, який явно перелічує геми, які ви хочете бачити у своїй програмі, Gemfile.lock додатково містить інші геми, від яких залежать ті, що перелічені в Gemfile. Вони автоматично встановлюються для задоволення залежностей.
Readme.md – використовуйте цей файл, щоб поділитися важливою інформацією про вашу програму, такою як її функції та як її встановити та запустити.
Рейкфайл – містить різні визначення завдань rake, які допомагають автоматизувати щоденні адміністративні завдання вашої програми.
config.ru – файл конфігурації Rack, який надає інтерфейс веб-серверу для запуску вашої програми.
Змініть каталог у додаток_списку_завдань каталог Rails створено та запущено сервер Rails щоб запустити програму. Тип localhost: 3000 в адресному рядку вашого веб-браузера. Якщо все пройшло добре, ви повинні побачити екран нижче.
Це домашня сторінка вашої програми за замовчуванням. Ви зміните її в наступному розділі цього посібника з Ruby on Rails. Ви можете зупинити сервер, натиснувши Ctrl + C.
Rails – Генерація команд
Команда generator у Rails використовує шаблони для створення багатьох корисних речей у вашій програмі. Ці генератори заощаджують багато часу.
Вони пишуть шаблонний код, необхідний для роботи вашого веб-застосунку. Запустіть. генерувати рейки окремо в командному рядку або терміналі, щоб побачити список доступних генераторів, як показано нижче.
Ви також можете запустити генерувати рейки щоб побачити опис дій команди. У ньому перелічено зручні опції та приклад використання. На рисунку нижче показано результат виконання контролер генерації рейок.
Використайте команду rails generate scaffold для автоматичного створення моделі, вигляду та контролера для програми Todo list, яку ви створюєте. Виконайте наступне у своєму терміналі (переконайтеся, що ви все ще в додаток_списку_завдань каталог):
rails generate scaffold todo_list title:string description:text
Це створює повноцінний веб-інтерфейс CRUD (створення, читання, оновлення, видалення) для таблиці TodoLists.
Ще одна корисна команда, яку слід знати рейки руйнуютьсяЦе змінює все на протилежне генерувати рейки робить.
Рейки – маршрутизація
Система маршрутизації Rails, яка називається маршрутизатором Rails, обробляє всі вхідні запити до вашої веб-програми. Вона перевіряє URL кожного запиту та зіставляє його з дією контролера, відповідальною за його обробку, використовуючи синтаксис, зазначений у файлі маршрутів (config / routes.rb).
Файл маршрутів контролює кожен URL аспект вашої веб-програми. Rails використовує RESTful дизайн, заснований на архітектурному стилі REST, який надає картуping між дієсловами HTTP та запитом URLдо дій контролера.
Файл маршрутів було згенеровано під час запуску нові рейки раніше. Продовжуючи роботу з програмою Todo, яку ви створюєте, виконайте наступне:
rails db:migrate
Переконайтеся, що ви все ще знаходитесь у кореневому каталозі програми ( додаток_списку_завдань каталог).
Запустіть сервер знову за допомогою сервер Rails. Тип http://localhost:3000/todo_lists/ у вашому браузері та натисніть Enter. Ви повинні отримати веб-сторінку, подібну до показаної нижче.
Це вигляд списків завдань, згенерований командою scaffold, і він контролюється TodoListsController. індекс дії.
Додайте список справ, натиснувши кнопку «Новий список справ» на сторінці. Ви повинні побачити екран нижче.
Зверніть увагу на URL Зараз http://localhost:3000/todo_lists/newЦе сторінка для створення нового списку справ, і вона контролюється TodoListsController. new метод.
Введіть назву та опис вашого списку справ у форму та натисніть «Створити список справ». URL має змінитися на http://localhost:3000/todo_lists/1, як показано нижче.
Це сторінка відображення списку справ, керованого TodoListsController Показувати метод. Якщо ви повернетеся до http://localhost:3000/todo_lists/, тепер ви повинні побачити екран нижче з доданим новим списком справ.
Rails зміг зіставити кожен запит з відповідною дією TodoListsController, використовуючи визначення маршруту в config / routes.rb.
Якщо ви поглянете на цей файл, то побачите один рядок ресурси: списки_завдань, що є способом запису RESTful маршрутів за замовчуванням у Rails. Цей один рядок створює сім маршрутів, усі з яких мають мапуping до контролера TodoLists.
За домовленістю, кожна дія контролера відповідає певній операції CRUD (створення, читання, оновлення, видалення) в базі даних.
прогін залізничні маршрути у командному рядку, щоб побачити різні маршрути, доступні у вашій програмі. На малюнку нижче показано результат виконання залізничні маршрути.
Рейки – Види
Шар перегляду є одним із компонентів парадигми MVC і відповідає за генерацію HTML-відповіді на кожен запит до вашої програми. Rails за замовчуванням використовує ERB (Embedded Ruby), який є потужною системою шаблонів для Ruby.
ERB спрощує написання та підтримку шаблонів, поєднуючи звичайний текст з кодом Ruby для підстановки змінних та керування потоком. Шаблон ERB використовує .html.erb розширення.
Здебільшого ви використовуватимете два теги-маркери, кожен з яких призводить до обробки вбудованого коду певним чином.
Тег зі знаком рівності <%= %> вказує на те, що вбудований код є виразом, і результат коду має бути підставлений у вивід під час рендерингу шаблону.
Інший тег без знака рівності <% %> вказує рендереру, що результат коду не слід підставляти або виводити у вивід.
Кожен контролер у вашій програмі Rails має відповідний підкаталог додаток/перегляди, і кожна дія в контролері має відповідний .html.erb файл у цьому підкаталозі.
Подивитися на додаток/перегляди програми Todo, яку ви створюєте. Ви знайдете підкаталог з назвою списки_справ що містить .html.erb файли з іменами, що відповідають діям у TodoLists контролера.
Rails – ActiveRecord, Active Record Pattern і ORM
ActiveRecord — це реалізація шаблону Active Record у Ruby. У цьому шаблоні клас представляє таблицю бази даних, а екземпляр класу — рядок у цій таблиці.
ActiveRecord зазвичай називають ORM (об'єктно-реляційною картою).ping) рівень, метод, який дозволяє керувати базою даних за допомогою мови, з якою вам найбільше зручно. Він незалежний від бази даних, тому ви можете легко перемикатися між базами даних, наприклад, SQLite, MySQL, PostgreSQL, SQL Server або Oracle — використовуючи той самий код і логіку.
Наприклад, щоб отримати масив, що містить усі списки справ у вашій програмі, вам не потрібно писати код, який відкриває з'єднання, виконує запит SQL SELECT та перетворює результат.
Ви просто друкуєте TodoList.all, а ActiveRecord повертає масив, заповнений об'єктами TodoList, які ви можете використовувати як завгодно.
Все, що вам потрібно зробити, це налаштувати конфігурацію в config / database.yml, а ActiveRecord обробляє відмінності між системами баз даних. Під час переходу з однієї бази даних на іншу вам не потрібно переписувати код.
Ви зосереджуєтеся на логіці програми, а ActiveRecord піклується про низькорівневі деталі підключення до вашої бази даних. Він використовує правила іменування для зіставлення моделей з таблицями бази даних.
Rails використовує множину в іменах класів вашої моделі, щоб знайти відповідну таблицю бази даних. Отже, для класу Список справ, ActiveRecord використовує таблицю бази даних під назвою списки_справ.
Рейки – міграції
Міграція Rails — це скрипт, який використовується для розвитку бази даних вашої програми. Він використовується для налаштування або зміни бази даних без ручного написання SQL.
Він використовує Ruby для визначення змін у схемі бази даних та дозволяє використовувати контроль версій для синхронізації бази даних у різних середовищах.
Міграції Rails використовують мову Ruby, специфічну для домену (DSL). Це діє як ABStracта дає змогу використовувати або змінювати ваш механізм бази даних відповідно до ваших вимог.
Міграціями можна ділитися з будь-ким, хто працює над програмою, а також їх можна відкатити, щоб скасувати зміни. Це надійний механізм безпеки, тому вам не потрібно турбуватися про завдавання постійної шкоди вашій базі даних.
Rails – асоціації ActiveRecord
Зв'язок між двома моделями ActiveRecord називається асоціацією. Асоціації значно спрощують виконання операцій над пов'язаними записами у вашому коді. Існує чотири поширені категорії.
Один на один: запис містить рівно один екземпляр іншої моделі. Гарним прикладом є профіль користувача — користувач має лише один профіль. Він використовує має_один keyword.
Один до багатьох: найпоширеніший зв'язок — одна модель має нуль або більше екземплярів іншої моделі. Використовуйте має_багато ключове слово для позначення цієї асоціації.
Багато до багатьох: трохи складніше. ActiveRecord пропонує два способи вирішення цієї проблеми: has_and_belongs_to_many та має_багато :крізь, що надає вам доступ до моделі об'єднання, визначеної в окремій таблиці.
Поліморфний від одного до багатьох: більш просунута асоціація в Rails. Вона визначає модель, яка може належати багатьом різним моделям в одній асоціації.
Rails – Перевірки ActiveRecord
Валідація допомагає переконатися, що у вас є правильні дані, оскільки робота з невірними даними є ризикованою та може коштувати вашому бізнесу грошей.
Валідація також забезпечує додатковий рівень захисту від зловмисних користувачів, які намагаються вставити шкідливі дані у вашу базу даних. Rails пропонує чистий API помічників валідації в ActiveRecord, які підтримують чистоту, безпеку та відсутність помилок у вашій базі даних.
Перевірки ActiveRecord виконуються на об'єктах моделі перед збереженням у базу даних, що робить їх надійнішими та відповідає найкращим практикам.
Наступні методи ActiveRecord запускають перевірки під час виклику для об'єктів моделі: створювати, створювати!, зберігати, зберігати!, оновлювати і оновлювати!Версії з вибухом (створити!, зберегти! та оновити!) викликатиме виняток, якщо запис недійсний, тоді як версії, що не відповідають bang, повертатимуть значення false.
Найпоширенішими помічниками для перевірки ActiveRecord є:
- Підтвердження: перевіряє, чи два поля мають однакове значення, наприклад, пароль та підтвердження пароля. Використовується разом із помічником перевірки присутності.
- Присутність: перевіряє, чи поле не порожнє.
- Унікальність: забезпечує унікальне значення для поля, наприклад, ім'я користувача.
- довжина: встановлює обмеження на довжину символів у полі.
Ви також можете створити власну користувацьку перевірку, використовуючи стверджувати метод та передаючи йому назву власного методу перевірки.
Перевірте модель Помилки об'єкт, щоб з'ясувати, чому перевірка не вдалася. Це дає вам усе необхідне, щоб зробити вашу програму більш обмеженою та безпечною, дозволяючи до бази даних потрапляти лише дійсні дані.
Rails – ActionController
Контролер Rails є центром вашої веб-програми. Це полегшує та координує спілкування між користувачем, моделями та представленнями.
Ваші класи контролерів успадковуються від Контролер застосунку, який містить код, що може бути запущений у всіх інших контролерах, і який, у свою чергу, успадковується від Контролер дій::База.
Контролер надає наступне для вашої програми:
- Він направляє зовнішні запити до внутрішніх дій.
- Він керує кешуванням, забезпечуючи підвищення продуктивності вашої програми.
- Він керує допоміжними методами, що розширюють можливості шаблонів перегляду, а також керує сеансами користувачів, забезпечуючи користувачам безперебійну роботу.
Рейки – конфігурації
Ви можете налаштувати такі компоненти, як ініціалізатори, ресурси, генератори та проміжне програмне забезпечення, використовуючи ініціалізатори та файли конфігурації вашої програми Rails у конфиг каталог. Файли, подібні до config/application.rb, config/environments/development.rb та config/environments/test.rb використовуються тут. Ви також можете додати власні налаштування для вашої програми.
Rails – налагодження
Під час створення програми вам потрібно буде налагоджувати код. Rails спрощує це завдяки жучок-покидач gem. Ви можете розпочати сеанс налагодження, розмістивши ключове слово жучок-покидач будь-де в коді вашої програми.
Це тимчасово зупиняє виконання на цьому етапі. Гем byebug пропонує кілька команд. Найкорисніші з них:
- наступний: переходить до наступного рядка коду, пропускаєping усі методи, викликані поточним рядком.
- Крок: схожий на наступний, але виконує кроки в кожному викликаному методі.
- перерва: зупиняє виконання коду.
- продовжити: продовжує виконання коду.
Доступні й інші геми для налагодження, такі як підглядатиУсі вони пропонують схожу функціональність з дещо відмінним синтаксисом. Геми налагодження не слід використовувати у продакшені, оскільки вони становлять ризики для вашої програми та поганий досвід для користувачів.
Файли журналів можна перевірити на наявність помилок у продакшені та відповідно обробляти. Також слід дотримуватися підходу розробки через тестування (TDD) під час створення застосунку, щоб переконатися, що все працює належним чином, перш ніж розгортати його у продакшені.













