Ruby on Rails 6/7, урок #5 | Отношение 'один-ко-многим' и обработка ошибок

preview_player
Показать описание
Продолжаем уроки по Ruby on Rails 6/7! Сегодня поговорим о том, что такое before_action, как обрабатывать ошибки в контроллерах с помощью rescue_from, как использовать concern, а также как выстраивать отношения "один-ко-многим" (one-to-many) с помощью has_many и belongs_to и управлять соответствующими записями.

Таймкоды:
00:00 Введение
00:40 Что такое before_action?
02:00 Что происходит, если запрошенной записи не существует?
02:50 Метод find, обработка ошибок с помощью rescue_from и render file
05:05 Использование concern
06:15 Создание модели и отношения один-ко-многим
08:40 Как создавать связанные записи в БД?
10:10 Контроллер и вложенные маршруты для связанных записей
12:20 Форма для создания связанных записей
14:50 Метод контроллера для создания связанных записей
17:50 Валидация и обработка ошибок в форме
19:00 Выдача всех ответов на странице вопроса
20:53 Удаление связанных записей
24:11 Особенность render и переменных образца класса
26:00 Задание для самостоятельной работы
26:50 Удаление связанных записей с помощью dependent: :destroy
27:56 Заключение

Аккаунт Ethereum (ETH): 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16

Рекомендации по теме
Комментарии
Автор

Лучший канал по рельсам среди русскоязычных, автор большое спасибо за труд))

hdhwnln
Автор

Просто шикарная подача материала! Спасибо Вам огромное за Вашу работу!

muradgadjiev
Автор

Добрый день, Илья! Огромное спасибо Вам за Ваш курс! Профессионально донесено до аудитории, а это не каждый может!

oksanagrigorenko
Автор

Все на высоте, улыбнули ники комментаторов ruby and DHH =)

eiipnws
Автор

спасибо, Вам большое за такой качественный контент!

vladimirgritskevich
Автор

YouTube - лучшая платформа. Udemy до YouTube как до луны.🙂

SuperYuri
Автор

рассказываете шикарно! доступно и понятно!

alex_eu
Автор

Поддерживаю насчет тестов! Разобрать бы синтаксис, на youtube тестам мало внимания.

dhh
Автор

Прохожу второй раз. Всё по кайфу. Илья, единственное пожелание по возможности делать более облегчённые серии по 3-4 на отдельные темы. Курс 20 видео интересно но тяжело.

observerone
Автор

Как всегда материал преподносится очень доходчиво и интересно
Вопрос:
Планируется видео про выгрузку данных из рельсового приложения в формат MS Excel ?

vladimirm
Автор

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

ksil
Автор

Отличные уроки! Спасибо за вашу работу! Не знаю, не смотрела вперед, вы будете использовать gem simple_form? Как добиться работы встроенной в этот gem валидации когда мы рендерим в другой контроллер? Буду благодарна за ответ!

kremkasu
Автор

Подскажите пожалуйста, какая программа используется, когда хочешь обвести что-нибудь на экране или написать (в данном случае зелёным цветом)

vtvidxt
Автор

Добрый день, может кто объяснить момент, связанный с роутингом, а именно, к примеру возьмем мы и добавим на странице /questions/4/ какой нибудь answer не валидный, после чего наш url изменится на /questions/4/asnwers по вполне понятным причинам, т.к мы долбанули по методу post в попытке сделать create, так вот если мы обновим страницу в таком виде /questions/4/asnwers все крашнется, т.к такого роута нет, как этого избежать ? ведь это не совсем корректное поведение вроде

hdhwnln
Автор

Илья, спасибо за шикарную серию. Лучшее, что я нашёл по RoR. Подскажите, пожалуйста. Вы написали метод destroy в answers_controller.rb
def destroy
answer = @question.answers.find params[:id]
....
end
А можно ли было отобрать удаляемый ответ вот так:
def destroy
answer = Answer.find params[:id]
....
end
Ведь id ответа у нас всегда уникальный.
Я попробовал, работает (ответ удаляется). Но не знаю, правильно ли это с точки зрения RoR и связей в БД

upqpcbn
Автор

Как разница у t.belongs_to и add_reference в миграциях?

Ruby-ieio
Автор

Получится вкратце объяснить разницу в добавлении методов в concern с хуком included do и без него? :) На практике и из документации пока не смог уловить.

alexanderyakovlev
Автор

Скажите, пожалуйста, а можно ли в данном случае создать ответ без привязки к вопросу (чтобы в question_id был nill например), а потом уже ответ привязать к вопросу.
Например все эти манипуляции сделать через консоль rails c.

У меня не получается так сделать, запись не вносится в таблицу (БД), а просто остаётся в памяти.

maksimkorelskii
Автор

Все круто, но можно показать более подробнее об альгоримьi и патернь

skarabei
Автор

“rails db:reset /usr/bin/env: «ruby.exe» no such file linux. Подскажите, где мне изменить настройки, чтобы на линукс не выдавало этой ошибки?

rickbacker