tutorial rails que ejemplos descargar curso caracteristicas ruby-on-rails ruby

ruby-on-rails - que - ruby on rails tutorial



¿Qué causa la advertencia de desaprobación: ActiveRecord:: Base.raise_in_transactional_callbacks=? (2)

Recibo este mensaje cuando ejecuto las especificaciones de mis características:

ADVERTENCIA DE DEPRECATION: ActiveRecord :: Base.raise_in_transactional_callbacks = está en desuso, no tiene efecto y se eliminará sin reemplazo.

Estoy usando Rails 5.0.0.rc1 y no estoy seguro de lo que está lanzando esta advertencia de desaprobación.

Tenía esto en mi archivo application.rb . Lo quité y la advertencia de desprecio desapareció:

config.active_record.raise_in_transactional_callbacks = true

Me gustaría recibir sugerencias sobre lo que realmente significa esta advertencia de desaprobación y saber qué desencadena esta advertencia de desaprobación.


Creo que este comportamiento se agregó entre 4.1 y 4.2 como una solución temporal a un problema que ya no es relevante en los rieles 5:

http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#error-handling-in-transaction-callbacks

Actualmente, Active Record suprime los errores generados en las devoluciones de llamada after_rollback o after_commit y solo las imprime en los registros. En la próxima versión, estos errores ya no serán suprimidos. En su lugar, los errores se propagarán normalmente como en otras devoluciones de llamada de Registro Activo.

Cuando defina una devolución de llamada after_rollback o after_commit, recibirá una advertencia de desaprobación sobre este próximo cambio. Cuando esté listo, puede optar por el nuevo comportamiento y eliminar la advertencia de desaprobación agregando la siguiente configuración a su config / application.rb:

config.active_record.raise_in_transactional_callbacks = true

Para aclarar, como @pixelearth sugiere, mi comentario a continuación no es lo suficientemente claro / prominente. En Rails 5 y más tarde, elimine la línea de config/application.rb :

config.active_record.raise_in_transactional_callbacks = true


Escribiendo esto aquí para más visibilidad para @R. El comentario de Hatherall.

Recibí esta advertencia al actualizar a 5 no porque no tenía la siguiente configuración en application.rb, sino porque lo hice.

En los rieles 5, quite la siguiente línea de application.rb

config.active_record.raise_in_transactional_callbacks = true