Учебники

Учебник Ruby & Rails

What is Ruby?

Ruby — это чистый объектно-ориентированный язык программирования. Он был создан Юкихиро Мацумото в Японии в 1995 году. Это динамичный язык с открытым исходным кодом, за которым стоит большое сообщество. Это было разработано для простоты и производительности. Ruby поощряет написание программного кода для людей в первую очередь, а для компьютеров — во-вторых.

Что такое рельсы?

Rails — это среда разработки, написанная на Ruby, для создания веб-приложений. Он был создан как основа приложения Basecamp, а затем выпущен как программное обеспечение с открытым исходным кодом в 2004 году для всех желающих.

Он был создан Дэвидом Хейнемайером Хассоном, широко известным как DHH. Это один из самых влиятельных и популярных инструментов для создания веб-приложений. Он предлагает множество стандартных функций и встроенных функций, что делает его подходящим вариантом для прототипирования и разработки MVP. Он используется некоторыми из ваших любимых сайтов, таких как Airbnb, Github, Shopify и т. Д.

В этом уроке для начинающих вы узнаете:

Почему рельсы?

Вот преимущества / преимущества использования Rails:

  • Rails упакован как драгоценный камень Ruby, и вы можете использовать его для создания различных приложений.
  • Это позволяет создавать обычные веб-приложения, приложения электронной коммерции, систему управления контентом и многое другое.
  • Rails — это полнофункциональная структура, которая включает в себя все, что вам нужно для создания веб-приложения на основе базы данных с использованием шаблона Model-View-Controller.
  • Это означает, что все слои построены так, чтобы работать без проблем с меньшим количеством кода. Это требует меньше строк кода, чем другие фреймворки.

Установка Ruby в Windows

Процесс установки будет зависеть от вашей операционной системы. Вы пройдете установку Ruby на Windows, Mac и Linux.

Самый простой способ установить Ruby на ваш компьютер с Windows — через установщик Ruby, который вы можете скачать по адресу https://rubyinstaller.org/ .

Все, что вам нужно сделать, это запустить загруженный установщик.

Шаг 1) Дважды щелкните по загруженному установщику ‘rubyinstaller-2.4.1-2-x64.exe’.

Шаг 2) Установите переключатель «Я принимаю лицензию» и нажмите кнопку «Далее». Это должно привести вас к следующему рисунку ниже:

Шаг 3) Установите первые два флажка, чтобы упростить запуск сценариев Ruby.

Нажмите кнопку «Установить», чтобы начать установку. Вы должны увидеть рисунок ниже, когда установка завершится.

Шаг 4) Не снимайте флажок, который устанавливает MSYS2. Нажмите «Готово», чтобы завершить установку, и появится окно командной строки, показанное на рисунке ниже.

Шаг 5) На этом этапе устанавливается MSYS2, платформа для сборки, в которой имеется менеджер пакетов для простой установки пакетов в Windows.

Нажмите Enter, чтобы установить все компоненты, так как все они должны иметь гладкую среду разработки Ruby on Rails для работы в Windows.

Установка Rails

Вы должны установить Ruby из предыдущего раздела, и теперь вы собираетесь установить Rails. Вы можете установить Rails, используя пакет из RailsInstaller , но проблема в том, что вы не получаете последнюю версию требуемых пакетов.

Если у вас уже установлена ​​последняя версия Ruby и установлен базовый набор необходимых RubyGems и расширений. Все, что вам нужно сделать сейчас, это запустить следующую команду в командной строке, чтобы получить Rails в вашей системе: ‘gem install rails.’

Вам также потребуется установить Node.js, если у вас его еще нет, потому что некоторые библиотеки, от которых зависит Rails, требуют, чтобы среда выполнения Javascript работала правильно. Вы можете получить узел на https://nodejs.org .

Это более распространенный и предпочтительный подход к разработке на Windows. Сообщество Rails использует подсистему 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 install ruby-full — он загрузит и установит последнюю версию Ruby

Чтобы убедиться, что установка прошла успешно, вы можете запустить следующую ‘ruby —version’, которая напечатает версию Ruby, которую вы установили.

Установка Rails в Ubuntu (Linux)

Вы должны выполнить следующие шаги, чтобы успешно установить Rails на вашем Linux-компьютере.

Шаг 1) Обновите ваш gem manager компьютера, запустив «gem update –system» в Терминале или в командной строке.

Шаг 2) Запустите ‘gem install rails’, чтобы установить последнюю версию Rails на ваш компьютер.

Шаг 3) Вам следует установить пакетный гем для простого управления зависимостями гемов приложений Rails. Запустите ‘gem install bundler’, чтобы получить его.

Два принципа Rails

Rails следуют основным принципам разработки программного обеспечения и поощряют вас использовать эти принципы.

Два наиболее распространенных являются:

  • Не повторяйте себя (СУХОЙ) — это заставляет вас писать краткий, последовательный и поддерживаемый код.
  • Соглашение о конфигурации — Rails предварительно сконфигурирован для использования разумных значений по умолчанию, которые подходят для наиболее распространенного использования. Это ускоряет разработку вашего приложения, и у вас также остается меньше кода для поддержки.

Rails — Файловые структуры проекта

Теперь, когда в вашей системе установлен Rails, давайте создадим приложение Rails! В этом уроке вы научитесь создавать приложение списка Todo. Запустите следующую команду ‘rails new todo_app’ в вашем терминале, чтобы создать приложение.

Эта команда создает каталог с именем todo_app в текущем каталоге с базовой структурой папок веб-приложения Rails, как показано на рисунке ниже:

Вы пройдете через основные каталоги в этом разделе.

app — этот каталог группируется с использованием различных подкаталогов для пользовательского интерфейса / макета (представления и помощники), контроллера (файлы контроллеров) и моделей (логика бизнеса / приложения).

app / controllers — в этом каталоге хранятся файлы контроллеров, используемые Rails для обработки запросов от клиента.

app / assets — содержит статические файлы, которые необходимы внешнему интерфейсу приложения, сгруппированному в папки по типу — файлы Javascript, изображения и таблицы стилей.

app / helpers — этот подкаталог содержит вспомогательные функции, которые делают вашу модель приложения, представление и логику контроллера сфокусированными, небольшими и беспрепятственными.

приложение / модели — это содержит файлы

эта модель базы данных вашего приложения. Классы моделей делают работу с базой данных очень простой.

app / views — содержит файлы шаблонов / макетов, с которыми взаимодействует пользователь вашего приложения. Шаблоны представляют собой комбинацию HTML и данных из базы данных.

bin — содержит Rails-скрипты, которые запускают ваше приложение. Он также может включать другие сценарии, которые вы используете для настройки и обновления приложения.

Config — содержит конфигурационные файлы — database.yml, environment.rb, rout.rb и т. Д., Необходимые для запуска приложения.

DB — этот каталог содержит файлы / скрипты, которые используются для управления базой данных вашего приложения.

lib — этот каталог содержит расширенный модуль для вашего приложения.

log — содержит файлы журнала — server.log, development.log, test.log, production.log и т. д., которые используются для отладки или мониторинга вашего приложения.

public — этот каталог содержит статические файлы и скомпилированные ресурсы, такие как файлы HTML, файлы Javascript, изображения и таблицы стилей.

test — этот каталог содержит тестовые файлы, которые вы пишете для проверки функциональности вашего приложения.

tmp — этот каталог содержит временные файлы, такие как файлы кэша и pid.

vendor — этот каталог содержит сторонние библиотеки.

Gemfile — этот файл определяет основные требования к гемам для запуска вашего веб-приложения. Вы можете сгруппировать драгоценные камни в разработку, тестирование или производство, и Rails будет знать, когда включать каждый драгоценный камень.

Gemfile.lock — В отличие от Gemfile, который явно перечисляет драгоценные камни, которые вы хотите в своем приложении, Gemfile.lock дополнительно содержит другие драгоценные камни, от которых зависят те, которые вы перечислите в Gemfile, которые затем автоматически устанавливаются для удовлетворения зависимостей.

Readme.md — этот файл используется для предоставления важных сведений о вашем приложении, например о том, что делает приложение, как выполнить установку и запуск приложения.

Rakefile — этот файл содержит различные определения задач rake, которые помогают автоматизировать повседневные задачи администрирования вашего приложения.

config.ru — это файл конфигурации Rack, который предоставляет интерфейс веб-серверу для запуска вашего приложения.

Перейдите в каталог ‘todo_app’, созданный Rails, и запустите ‘rails server’, чтобы запустить приложение. Введите localhost: 3000 в адресной строке вашего веб-браузера, вы должны увидеть рисунок ниже, если все прошло хорошо.

Это домашняя страница по умолчанию для вашего приложения, и вы измените ее в следующем разделе руководства. Вы можете остановить сервер, нажав Ctrl-C .

Rails — генерировать команды

Команда Rails generate использует шаблоны для создания множества полезных вещей в вашем приложении. Вы можете использовать эти генераторы, чтобы сэкономить много времени.

Это помогает путем написания стандартного кода, кода, необходимого для работы вашего веб-приложения. Вы можете запустить ‘rails generate’ самостоятельно в командной строке или терминале, чтобы увидеть список доступных генераторов, как показано ниже:

Вы также можете запустить ‘rails generate’ command », чтобы увидеть описание того, что делает команда. Он предлагает удобные опции, которые могут быть запущены с примером команды и использования. На рисунке ниже показан результат работы ‘rails generate controller’ :

Вы будете использовать команду rails generate scaffold для автоматического создания модели, представления и контроллера для создаваемого вами списка задач. Запустите ‘rails generate scaffold todo_list title: string description: text’ в вашем терминале (проверьте, что вы все еще находитесь в каталоге todo_app).

Это создаст полный веб-интерфейс CRUD (создание, чтение, обновление и удаление) для таблицы TodoLists.

Еще одна полезная команда, которую нужно знать: «Уничтожить рельсы», она меняет все, что делает «рельсы …» .

Rails — маршрутизация

Система маршрутизации Rails, rails router, обрабатывает все входящие запросы к вашему веб-приложению. Это делается путем изучения URL-адресов входящих запросов, а затем сопоставляется каждый запрос с действием контроллера, ответственным за его обработку, с использованием специального синтаксиса, указанного в файле маршрутов ( config / rout.rb ).

Файл маршрутов помогает контролировать каждый аспект URL вашего веб-приложения. В Rails по умолчанию используется дизайн RESTful, основанный на архитектурном стиле REST, который обеспечивает отображение между глаголами HTTP и запросами (URL) на действия контроллера.

Файл маршрутов был сгенерирован, когда вы запустили ‘rails new’ в предыдущем разделе этого урока. Продолжая создаваемое вами приложение Todo, запустите следующую команду «rails db: migrate» (вскоре вы узнаете, что это делает)

В командной строке убедитесь, что вы по-прежнему находитесь в корневом каталоге приложения (каталог todo_app).

Затем снова запустите сервер с помощью ‘rails server’ . Введите http: // localhost: 3000 / todo_lists / в браузере и нажмите Enter. Вы должны вернуться на веб-страницу, как показано на рисунке ниже:

Это представление списков Todo, сгенерированное командой scaffold, и оно управляется действием индекса TodoListsController.

Идите вперед и добавьте список задач, нажав «Новый список Todo» на странице, вы должны получить страницу, как показано ниже:

Обратите внимание, что URL-адрес изменен на http: // localhost: 3000 / todo_lists / new . Это страница для создания нового списка задач, которая управляется новым методом / действием TodoListsController.

Введите заголовок и описание списка задач в форму и нажмите кнопку Создать список задач, URL-адрес должен измениться на http: // localhost: 3000 / todo_lists / 1 , как показано на рисунке ниже:

Это страница показа списка задач, и она контролируется методом / действием showoListsController. Если вы вернетесь к http: // localhost: 3000 / todo_lists / , вы должны увидеть рисунок ниже с добавленным новым списком задач:

Rails смог сопоставить различные запросы (URL) с соответствующим действием TodoListsController, используя определение маршрута в config / rout.rb.

Если вы посмотрите на этот файл, вы увидите одну строку ‘resources: todo_lists’ , которая является Rails-способом по умолчанию для написания спокойных маршрутов. Эта единственная строка создает семь маршрутов, все сопоставление с контроллером TodoLists.

По соглашению, каждое действие контроллера также отображается на конкретную операцию CRUD (создание, чтение, обновление и удаление) в базе данных.

Вы можете запустить ‘rake route’ в командной строке, чтобы увидеть различные маршруты, доступные в вашем приложении. На рисунке ниже показан результат запуска ‘rails route’ в вашей командной строке / терминале.

Рельсы — взгляды

Слой View является одним из компонентов парадигмы MVC и отвечает за генерацию HTML-ответа на каждый запрос к вашему приложению. Rails по умолчанию использует ERB (Embedded Ruby), который является мощной системой шаблонов для Ruby.

ERB делает написание шаблонов простым и понятным, объединяя простой текст с кодом Ruby для подстановки переменных и управления потоком. Шаблон ERB имеет расширение .html, .erb или .erb.

В основном вы будете использовать только комбинацию из двух маркеров тегов, каждый из которых заставляет встроенный код обрабатываться и обрабатываться определенным образом.

Тег со знаком равенства « <% =%>» указывает, что встроенный код является выражением и что результат кода должен быть заменен средством визуализации при визуализации шаблона.

Другой тег без знака равенства «<%%>» указывает средству визуализации, что результат кода не должен заменяться / печататься при визуализации шаблона.

Каждый контроллер в вашем приложении Rails имеет соответствующий подкаталог в app / views , а каждое действие / метод в контроллере имеет соответствующий файл .html и .erb в этом каталоге.

Взгляните на app / views приложения todo, которое вы создаете. Вы найдете подкаталог с именем ‘todo_lists’ внутри файлов этого подкаталога .html.erb с именами, соответствующими действиям / методам в контроллере TodoLists .

Rails — ActiveRecord, шаблон активной записи и orm

ActiveRecord — это реализация Ruby шаблона Active Record, который представляет собой простой шаблон, в котором класс представляет таблицу, а экземпляр класса представляет строку в этом классе.

ActiveRecord обычно называют ORM (Object Relational Mapping), техникой, которая позволяет вам управлять своей базой данных, используя язык, который вам наиболее удобен. Это не зависит от базы данных, поэтому вы можете легко переключаться между базами данных (например, SQLite, MySQL, PostgreSQL, SQL Server, Oracle и т. Д.). Этот набор больше подходит для вашего приложения с тем же кодом / логикой.

Итак, если вы хотите получить массив, содержащий список всех списков задач в вашем приложении, то вместо написания кода для инициирования соединения с базой данных выполните какой-то запрос SQL SELECT и преобразуйте эти результаты в массив .

Для этого вам просто нужно набрать «TodoList.all», и Active Record предоставит вам массив, заполненный объектами TodoList, с которыми вы можете играть, как вам нравится.

Все, что вам нужно сделать, это настроить правильную конфигурацию в config / database.yml , и Active Record отработает все различия между различными системами баз данных. Поэтому, когда вы переключаетесь с одной на другую, вам не нужно думать о Это.

Вы сосредоточены на написании кода для своего приложения, и Active Record подумает о низкоуровневых деталях подключения вас к вашей базе данных. Active Record использует соглашения об именах для создания соответствия между моделями и таблицами базы данных.

Rails множит имена классов вашей модели, чтобы найти соответствующую таблицу базы данных. Итак, для класса TodoList ActiveRecord создаст таблицу базы данных с именем TodoLists.

Рельсы — Миграции

Миграция Rails — это просто скрипт, который вы используете для редактирования базы данных вашего приложения. Он используется для настройки или изменения базы данных и позволяет избежать написания вручную кода SQL для этого.

Он использует Ruby для определения изменений в схеме базы данных и позволяет использовать контроль версий для синхронизации вашей базы данных.

В Rails Migrations используется язык, специфичный для домена Ruby (DSL). Это действует как абстракция и позволяет использовать или изменять ядро ​​базы данных в соответствии с вашими требованиями.

Они могут быть предоставлены любому, кто работает с приложением, а также могут быть отменены, чтобы отменить любые изменения в базе данных. Это механизм высокой безопасности, так как вам не нужно беспокоиться о нанесении постоянного ущерба вашей базе данных.

Rails — Ассоциации ActiveRecord

Связь между двумя моделями ActiveRecord называется ассоциацией. Ассоциация значительно облегчает выполнение операций с различными записями в вашем коде. Его можно разделить на четыре категории:

Один к одному : — Это указывает на то, что запись содержит ровно один экземпляр другой модели. Хорошим примером является профиль пользователя. У пользователя есть только один профиль. Использует ключевое слово _one .

Один ко многим : — Это наиболее распространенная ассоциация, и она указывает, что одна модель имеет ноль или более экземпляров другой модели. Ваше использование имеет ключевое слово _many для обозначения этой ассоциации.

Многие ко многим : — Эта ассоциация немного сложнее, и ActiveRecord предоставляет два способа ее обработки. Использование has_and_belongs_to_many и has_many, которое дает вам доступ к отношению, определенному в отдельной таблице.

Полиморфный один ко многим : — Это более продвинутая ассоциация, доступная вам в Rails. Вы можете использовать его для определения модели, которая может принадлежать множеству разных моделей в одной ассоциации.

Rails — валидации ActiveRecord

Проверка помогает гарантировать, что у вас есть правильные данные, потому что работа с неправильными данными — ужасная вещь и может стоить вам ваших денег и бизнеса.

Проверка также обеспечивает дополнительный уровень безопасности для вашего приложения от злоумышленников от получения доступа к информации в вашей базе данных. Rails предлагает вам хороший API помощников валидации в ActiveRecord, чтобы ваша база данных была чистой, безопасной и без ошибок.

Проверки ActiveRecord выполняются на объектах модели перед их сохранением в базе данных, что делает их более надежными, а также лучшими практиками при создании приложения.

Следующие методы ActiveRecord вызывают проверки при использовании или вызове объектов модели — создайте, создайте !, сохраните, сохраните !, обновите и обновите! , Те, у кого есть удар ( создать !, сохранить! И обновить! ), Вызывают исключение, если запись недействительна, в то время как это не так.

Наиболее распространенные помощники проверки ActiveRecord в вашем распоряжении: —

Подтверждение: — Этот помощник проверки полезен для проверки того, что два поля имеют одинаковую запись. например, пароль и подтверждение пароля, он используется вместе с помощником проверки присутствия.

Присутствие: — Проверяет, что поле не пустое.

уникальность: обеспечивает уникальное значение для поля, например, имя пользователя

Длина: — ввести ограничение на длину символа поля

Вы также можете создать свою пользовательскую проверку, используя метод validate и передав ему имя пользовательского метода проверки.

Вы можете проверить объект ошибки модели, чтобы узнать причину проверки. Надеемся, у вас есть некоторые идеи, чтобы сделать ваше приложение более ограниченным и более защищенным, чтобы обеспечить только безопасные данные в вашей базе данных.

Rails — ActionController

Контроллер Rails является центром вашего веб-приложения. Это облегчает и координирует связь между пользователем, моделями и представлениями.

Ваши классы контроллеров наследуются от ApplicationController, который содержит код, который можно запускать на всех других контроллерах, и он наследует от класса ActionController.

Контроллер предоставляет вашему приложению следующее:

  • Направляет внешние запросы на внутренние действия
  • Он умеет кешировать, что повышает производительность вашего приложения
  • Он управляет вспомогательными методами, которые расширяют возможности шаблонов представлений. Он также управляет сессиями пользователей, предоставляя им удобство работы с вашим приложением.

Rails — Конфигурации

Вы можете настроить различные компоненты, такие как инициализаторы, ресурсы, генераторы, промежуточное программное обеспечение и т. Д. Используя инициализаторы приложений Rails и файлы конфигурации в каталоге config. Файлы, такие как config / application.rb, config / environment / development.rb и config / environment / test.rb и т. Д. Вы также можете настроить пользовательские параметры для своего приложения.

Rails — отладка

Когда вы создаете свое приложение, придет время, когда вам потребуется / придется отлаживать код. Rails делают это легко, используя gem byebug. Вы можете начать сеанс отладки, поместив ключевое слово «byebeg» в любом месте кода приложения.

Это временно остановит выполнение в этой точке. Драгоценный камень byebug дает вам несколько команд для использования. Самые полезные из них:

  • next : команда, позволяющая перейти к следующей строке кода, пропуская все методы, вызванные выполнением текущей строки.
  • step : это похоже на команду «next», но заставит вас перейти к каждому вызванному.
  • перерыв : это останавливает выполнение кода.
  • продолжить продолжает выполнение кода.

Доступны и другие гемы отладки, такие как «pry», и все они предоставляют схожие функции, но немного другой синтаксис. Драгоценные камни отладки не должны использоваться в производстве, так как это создает риск для вашего приложения и плохой опыт для пользователей вашего приложения.

Существуют файлы журналов, которые можно проверить на наличие ошибок в работе и обработать их. Кроме того, при разработке приложения следует придерживаться подхода TDD (разработка на основе тестирования), чтобы убедиться, что все работает хорошо перед развертыванием в производство.

Резюме:

  • Ruby — это чистый объектно-ориентированный язык программирования
  • Ruby имеет элегантный синтаксис, который легко читать и писать.
  • Rails — это среда разработки, написанная на Ruby, для создания веб-приложений.
  • Процесс установки будет зависеть от вашей операционной системы.
  • Rails упакован как драгоценный камень Ruby, и вы можете использовать его для создания различных приложений.
  • В этом учебном пособии вы создадите приложение со списком Todo, запустите followincomm’n’n » rails netoda’p’p’p ‘в терминале youR, чтобы создать приложение.
  • Команда Rails generate использует шаблоны для создания множества полезных вещей в вашем приложении.
  • Система маршрутизации Rails, rails router помогает вам обрабатывать все входящие запросы к вашему веб-приложению.
  • Слой View является одним из компонентов парадигмы MVC и отвечает за генерацию HTML-ответа на каждый запрос к вашему приложению.
  • ActiveRecord — реализация Ruby шаблона Active Record.
  • Миграция Rails — это просто скрипт, который вы используете для редактирования базы данных вашего приложения.
  • Связь между двумя моделями ActiveRecord называется ассоциацией.
  • Проверка помогает гарантировать, что у вас есть правильные данные, потому что работа с неправильными данными — ужасная вещь и может стоить вам ваших денег и бизнеса.
  • Контроллер Rails помогает упростить и координировать связь между пользователем, моделями и представлениями.
  • Rail помогает вам настроить различные компоненты, такие как инициализаторы, ресурсы, генераторы, промежуточное программное обеспечение и т. Д.