Ruby on Rails

У першій частині уроку ми з вами створили наш перший додаток на Ruby on Rails, навчилися додавати та відображати завдання. У цій частині ми з вами навчимося видаляти та редагувати наші завдання. Ми будемо змінювати назву завдання та текст короткого опису.

Насамперед внесемо невеликі зміни у відображення завдань. Зробимо так, щоб останні додані завдання відображалися першими у списку. Для цього відкриємо файл контролера tasks_controller.rb і в методі index поміняємо рядок @tasks = Task.all на рядок @tasks = Task.all.order(created_at:: desc). В результаті отримаємо метод виду:

Видалення завдань

Простіше бути і не може. Для видалення запису з бази даних нам потрібно додати до нашого контролера метод destroy. Відкриваємо файл контролера tasks_controller.rb і додаємо до нього:

Метод видалення у нас є, тепер потрібно відобразити посилання або кнопку для того, щоб ми могли видалити запис. Для цього відредагуємо файл index.html.erb у папці views/tasks та приведемо до такого виду:

Як ви побачили, ми додали посилання, яке використовуючи метод: delete вказує контролеру, що ми хочемо видалити запис з бази. Це простими словами, насправді все трохи не так, але суть ясна) Після натискання на посилання, ми отримаємо діалогове вікно з підтвердженням і якщо натиснемо кнопку "ОК" , то запис буде видалено.

Редагування завдань

Додамо посилання для редагування записів у файл index.html.erb, дописавши код у цикл виведення завдань:

При натисканні на це посилання ми відкриємо окрему сторінку з формою, в якій ми зможемо відредагувати наше завдання, а саме змінити ім'я або опис завдання.

Створимо файл edit.html.erb у папці views/tasksі додамо до нього код:

Сторінку ми створили та додали до неї код, тепер для того, щоб дані завантажувалися у форму редагування, потрібно створити метод у контролері. Додамо код у файл контролера tasks_controller.erb :

Дані тепер підвантажуються, сторінка відкривається, але якщо ми натиснемо на кнопку«Зберегти» — отримаємо помилку. У нас немає методу який відповідає за оновлення запису, додамо у файл контролера tasks_controller.erb код:

Код цього методу дуже схожий на код для створення нового запису, але відрізняється тим, що знаходить у базі завдання з потрібним id і заповнює потрібні поля новими даними, після чого ми отримуємо оновлений запис.

Як бачите, робити операції видалення та оновлення дуже просто. У наступному уроці, додамо пару цікавих фішок)