Ruby on Rails для начинающих

Уроки Ruby on Rails для начинающих вы можете найти здесь. Что же такое Ruby on Rails? Ответ очень прост, это невероятно удобный фреймворк для создания сайтов разного уровня. Разработка на Ruby on Rails доставляет массу удовольствия и радости программистам, так как здесь очень многое продумано.

Ruby on Rails

Отметим что этот фреймворк требует определенных навыков, нужно уметь работать с консолью и знать азы Linux администрирования. Также чтобы изучить синтаксис языка Руби и фреймворка Ruby on Rails уйдет некоторое время.

Я сравниваю фреймворк Ruby on Rails с экскаватором, если нужно перекопать огород то вам хватит и лопаты, а чтобы копать много и много, нужен мощный инструмент как экскаватор. Лопатой можно подружится за один час, а экскаватор требует — водительских прав и навыков работы с этой техникой. Примерно так обстоит дело если вы хотите делать не сложные сайты, то берите чистый Php или CMS вроде WordPress, Mod’x. Для 99% процентов сайтов в интернете и этого хватит.

И флаг вам в руки, а фреймворк Ruby on Rails нужен для профессиональных программистов, которые могут потратить пару месяцев на изучение, но зато потом могут разрабатывать огромное количество сайтов за короткое время.

Разработка на Ruby on Rails

Итак начнем разработку на Ruby on Rails с нуля. Для этого сначала создадим проект на виртуальном рабочем месте от компании replit.com. Вы зарегистрируйтесь на этом сайте и войдите в свой кабинет.

Нажмите на кнопку New repl (то есть добавить новый проект):

Новый проект на Ruby on Rails

Потом в появившемся окне выберите Rails:

Выбираем Rails

А потом введите любое название проекта:

Название проекта

Ну и жмем на Create repl. Все наше виртуальное рабочее место создано!

Для этого на странице Home нажимаем на появившиеся проект:

Создан проект в Replit.com

И выйдет вот такое рабочее место с Ruby on Rails:

Проект Ruby on Rails на Replit.com

Слева стоят файлы и папки вашего проекта на Ruby on Rails, справа есть предпросмотр проекта в живую (где стоит надпись Yoy! You’re on Rails!) с веб адресом проекта и снизу ссылка на консоль (Console). А в самом вверху стоит кнопка включить или выключить, то есть Stop или Run.

Если перейти по веб адресу проекта указанного сверху ничего сразу не выйдет, нужно подождать минут 10-15 пока не обновятся записи DNS. Или подождите чуть больше.

Ruby on Rails Scaffold

Теперь давайте создадим список книг. То есть вы можете заходить на сайт и добавлять книгу с автором. Для этого заходим в консоль:

Scaffold на Ruby on Rails

И набираем очень простую команду — bundle exec rails g scaffold books title:string author:string и жмем Enter.

Если все сделали правильно, то справа в консоли должны появится много записей с create и так далее. Если вы не сделали все правильно, то появится оповещение в самой консоли, попробуйте повторить попытку, может вы что-то написали не так. также попробуйте и с bundle exec и без него.

Теперь запустим миграции в этой же консоли — bundle exec rails db:migrate и жмем на enter (после генерации скаффолда нужно каждый раз запускать миграцию).

Теперь заходим на сайт и открываем страницу /books:

CRUD на Ruby on Rails

Жмем на New Book и мы сможем добавлять книги. Я например, добавил вот эти книги и их авторов:

CRUD

Вы можете в созданном приложении делать такие операции — просматривать, изменять, удалять и добавлять. Все это называется CRUD (сокращение английских слов — Create, Read, Update, Delete).

То есть мы создали приложение не написав не строчки кода! Вот чем хорош Ruby on Rails!

Синтаксис Scaffold довольно простой:

rails g scaffold имя_объекта поле1:string поле2:string поле3:string

Вместо имя_объекта пишите любое значение, например ads или posts. А вместо поле1, поле2 и так далее могут быть любые поля на английском, например title, name, city и так далее.

Вместо string можно выбирать и другие типы полей, string это строковое значение (строка длинной до 255 символов), можно integer это целое число, или text это текстовое поле (большой текст), date это дата то есть год месяц и день, datetime это год месяц день а еще часы и минуты.

Например вот так — bundle exec rails g scaffold ads title:string text:text price:integer date:date

Теперь вы можете посмотреть файлы созданной нами CRUD:

Файлы Ruby on Rails

Для этого переходим в app/controllers/books_controller.rb. Это контроллер вашего CRUD, то есть где происходят вставка записей в базу данных, удаление записей и так далее. Одним словом кода сайта. Каждый контроллер состоит из нескольких или одного экшена.

Каждый экшн начинается с def и заканчивается с end. Например экшн index из контроллера books выглядит вот так:

def index
@books = Book.all
end

Синтаксис этого кода довольно простой, из таблицы Books (Book) берутся все записи (all) и присваивается к переменной @books. Этот код мы можем модифицировать, например показать книги имеющие номер больше 2:


def index
@books = Book.where("id > ?", 2).all
end

Есть еще и папка app/views/books здесь есть файлы с HTML нашего CRUD, там вы можете изменить код HTML.

Также хочу отметит файл config/routes.rb:

Роутер в Ruby on Rails

Это файл где прописываются пути. Запись root «books#index» означает что на главной страница нашего сайта будет стоят CRUD с книгами. А по адресу /my+params (например /my2), будет открываться страница с одной книгой, то есть за это будет отвечать экшн show из контроллера books.

Есть еще и папка public. Это куда загружаются картинки, стили сайта и прочие файлы. В эту папку вы можете поместить картинку image.png и на сайте ее можете открыть по адресу /image.png. Или загрузить стиль style.css в папку public а потом в файле app/views/layouts/application.html.erb  прописать в секции head путь до style.css:

Layouts в Ruby on Rails

Все страницы сайта помещаются в этот application.html.erb. Точнее HTML код каждого экшена помешается внутрь application, за это отвечает <%= yield %>. Можно создать несколько layouts для каждого котроллера или экшена по отдельности. Но это потом, а сейчас и этого хватит за уши.

Заключение

Этим давайте закончим наше и так не очень короткое изложение. Это ведь вводный урок Ruby on Rails. Это ведь Ruby on Rails для начинающих программистов! Остальное вы можете узнать на официальном сайте rubyonrails.org. Очень рекомендую изучать Rails именно с официального сайта.

Что касается установки Ruby on Rails для реального проекта то вы можете использовать сервисы где имеются готовые образы Rails. Например, можете использовать облачную платформу Jelastic. Установка на этой платформе осуществляется в несколько кликов.

Также вы можете установить у себя на компьютере Ruby on Rails. Для этого рекомендуем использовать суб систему Linux если ваш компьютер на Windows. Или установить Руби с сайта rubyinstaller.org. Также есть и railsinstaller.org в котором можно скачать комплект для разработки, а именно — базу данных SQL Lite, язык Ruby и конечно же Ruby on Rails. Просто скачайете установщик и жмете далее и далее.