Ruby on rails

Ruby on Rails. Установка, настройка, початок роботи

Установка.


Просто і швидко ror ставиться через rvm c rvm.io/.


* $ HOME надалі.
Після цього в $ HOME / .bash_profile повинна з'явитися строчка:

і при кожному відкритті консолі rvm буде довантажувати, але у мене цього не сталося - довелося ще в $ HOME / bashrc прописувати:


Перевірка на успішність створення


повинна повернути більш детальну інформацію, начебто


В процесі установки я випадково встановив кілька версій, що потім доставило деякі неприємності). Подивитися список встановлених версій рубай можна так:
> Rvm list
Якщо версій кілька, то поточна буде позначена "=>", дефолтна - "*", а поточна і дефолтна - "= *". Поміняти на потрібну використовувану версію можна так:


Щоб поміняти дефолтну версію рубай пишемо:

Створення проекту.


Тепер можна перейти безпосередньо до створення проекту. Створюємо папку $ HOME / ROR / tickets, заходимо в неї і робимо наступне.


При створенні проекту будуть згенеровані всі необхідні директорії (app, config, db, log і т.п.) і конфігураційні файли в цій папці. Для роботи невеликого тестового проекту нам буде потрібно, в моєму випадку, база даних PostgreSQL, пара gem-ів (бібліотек) і запущений rails сервер).
Для запуску сервера потрібно, перебуваючи в корені папки зі створеним проектом запустити команду:


де s - команда запуску сервера (server), а -p 3000-номер порту (port), за яким буде доступний проект. Що б запустити консоль, потрібно набрати:

База даних.


Щоб працювати з постгресом, додаємо в кінець файлу Gemfile, який повинен знаходиться в корені проекту, рядок
> Gem 'pg'
зберігаємо файл і робимо


його ми робимо кожен раз, коли вносимо зміни в Gemfile, а потім ще й перезапускаємо сервер. Щоб сюди більше не повертатися, відразу ж додаємо і
> Gem 'haml-rails' для швидкої і зручної (після того як звикнеш)) розмітки шаблонів-уявлень. Тепер відредагуємо атрибути Конект до постгресу в файлі database.yml. Він знаходиться в папці $ HOME / ROR / tickets / config / і повинен буде містити такий блок:


з потрібними користувачем і ім'ям БД, у мене це tickets і tickets відповідно).

Начебто все приготування закінчені і можна приступати до створення моделі, контролера та подання.

Створюємо два методу - up і down, які використовуються за замовчуванням функціями роботи з міграціями - вони, відповідно, створюють і видаляють нашу таблицю. Назви типи даних будуть залежати від використовуваної БД. Первинний ключ створюється за замовчуванням і буде називатися id, але його можна задати і явно:


А якщо ми не хочемо створювати первмчний ключ взагалі, пишемо так:


Зберігаємо і пишемо в консолі:


В результаті дії цієї команди виконуються всі невиконані методи up з файлів міграцій в директорії $ HOME / ROR / tickets / app / db / migrate /. Всі відомості про стан таблиць можна подивитися у файлі $ HOME / ROR / tickets / app / db / shema.rb.


Запускає метод down останньої виконаної міграції, в результаті чого таблиця віддаляється з БД. Щоб відкотити більше міграцій, потрібно додати до команди rollback параметр STEP:


ця команда відкотить три останні міграції. Подивитися статус всіх міграцій в консолі:


Якщо потрібно запустити якийсь певний метод з певної міграції, то додаємо параметр VERSION:


У файлі моделі ($ HOME / ROR / tickets / app / models / user.rb) нам поки потрібно зробити тільки одне - визначити поля таблиці, які будуть доступні для зміни з контролера, в цілях безпеки, як я розумію). Для цього пишемо в ньому наступне:

Поки програма не працює, для того, щоб упевнитися, що всі створені таблиці дійсно створені і функціонують як їм і належить, можна скористатися раілс консоллю:


ця команда не зробить запис в таблицю, але створить об'єкт руюі в пам'яті з усіма встановленими атрибутами. А тепер зробимо запис:


в разі успіху повинна повернути true. Запис можна створити і однією командою - create:


Щоб перевірити чи є об'єкт в БД, можна використовувати find:


поверне об'єкт або помилку: «ActiveRecord :: RecordNotFound: Could not find User with id = 1», а так само і сам згенерований sql-запит до БД.
Шукати можна і по конкретним полях:


Ще кілька зручних методів, які напевно стануть в нагоді на перших порах:
> User.first і User.last -повернутися перший і останній запис в таблиці відповідно, а User.all поверне масив всіх об'єктів таблиці.

Контролер.


В результаті цієї команди будуть створені файл контролера: $ HOME / ROR / tickets / app / controllers / users_controller.rb і директорія для уявлень:
$ HOME / ROR / tickets / app / views / users /. Кожному методу котроллер буде відповідати уявлення з такою ж назвою, в цій папці. Їх можна створювати вручну, а можна і відразу при створенні контролера:


У цьому випадку файли представлень створяться автоматично в папці $ HOME / ROR / tickets / app / views / users / і будуть називатися (якщо ви не забули підключити haml) index.html.haml і list.html.haml. Видалити контролер можна так:


де d- скорочення від destroy
Визначати метод index, який створюється за замовчуванням, не обов'язково. Вміст нашого контролера users буде таким:

У users_list буде масив об'єктів користувачів, яких ми по ідеї вже понадобавлялі з консолі, а "@" означає, що змінна буде передана в шаблон.

Подання.

Рівень вкладеності задається табуляцією, атрибути тегів пишуться «хешеобразно» в фігурних дужках:

а вміст - через пробіл:% td test. Таким чином вміст нашого уявлення:

Дефіс - виконуваний код в шаблоні. Тут ми проходимся по масиву об'єктів і виводимо в циклі його методи - поля name і role і id.

Всі вистави «обертаються» в головний шаблон, який знаходиться в $ HOME / ROR / tickets / app / views / layouts / application.html.haml
Видаляємо все, що в ньому є і робимо його максимально простим:

Вміст всіх наших згенерованих шаблонів підставляється замість = yield. Головне не помилитися з рівнями укладення, мене це спочатку дуже напружувало).


І залишився тільки один маленький крок - редагування файлу-конфіга маршрутів (url) - routes.rb. Він знаходиться в $ HOME / ROR / tickets / config /. У ньому описуються всі маршрути нашого проекту. Зараз там буде тільки два записи:

Це рутовий шлях на «головну» сторінку (буде показуватися вміст шаблону /users/index.html.haml, навіть незважаючи на те, що метод index в контролері не визначений) і шлях до сторінці виведення списку користувачів. У разі, якщо до методу буде пост запит, він повинен буде прописуватися так:
post «users / add».
Тепер все має працювати)

Схожі статті