Эта статья просто для того, чтобы понять, как рельсы понимают прошлую версию моего приложения и защищают ее от текущих критических изменений.
Недавно мы обновили наше приложение с 4.2+ -> 5.0.Одним из изменений, которые Rails реализовал в Rails 5, является использование throw(:abort)
в before_*
обратных вызовах для разрыва цепочки (если это когда-либо понадобится), а использование false
просто не будет иметь побочного эффекта (то есть никакого обратного вызовацепь будет остановлена при использовании false
) (обратите внимание на это)
Но здесь подвох.Если вы прочитаете this , это ясно говорит о том, что при обновлении с 4.2 -> 5.0
обратные вызовы return false
из before_*
все равно будут работать (с предупреждением, но будут работать)
вот мой вопрос после обновления, когда у меня заблокирован Rails, AR и AS до версии 5.0.0.1 на моем Gemfile.lock, как Rails узнает, что я обновил приложение с 4.2, и оно должно соответствовать выражению return false
в обратном вызове before_ *, чего не будет, если вы создадите новое приложение в Rails 5.0
Возможно, будет полезна ссылка на исходный код.