Разработка в Rails 5.2.2.1. Я хочу определить «глобальный» обработчик спасения для моей модели, чтобы я мог поймать NoMethodError
и предпринять соответствующие действия. Я считаю, что контроллеры могут сделать это с rescue_from
, но модели не могут. Зная, что разработчики Rails - умные люди;) Я полагаю, что для этого должна быть веская причина, но я все еще разочарован. Погуглив, я даже не могу найти примеров, когда люди спрашивают, как это сделать, и другие люди либо говорят им, как, или почему они не могут, либо почему они не должны этого хотеть. Может быть, это потому, что обработчики спасения не могут вернуть значение исходному вызывающему объекту?
Вот что я пытаюсь сделать: мне нужно провести рефакторинг своего приложения, чтобы то, что раньше было единой моделью, теперь делилось на две (назовем их Orig и New). Вкратце, я хочу сделать так, чтобы при вызове метода получения атрибута (скажем) для объекта Orig, если этот атрибут переместился в New, я мог поймать эту ошибку и вместо этого вызвать new.getter
(понимая, что Orig сейчас belongs_to
новый). Это решение основано на моем опыте работы с такими возможностями Perl5 AUTOLOAD
.
Любые идеи о том, как это сделать, очень ценятся. Может быть, мне просто нужно определить геттеры / сеттеры для всех перемещенных атрибутов индивидуально.