Méthode non raise_in_transactional_callbacks=' pour ActiveRecord::Base:Classe (NoMethodError)
Avant la rédaction de cette question, j'ai regardé ces réponses, mais a été incapable de trouver une solution.:
Erreur lors de l'exécution des rails generate scaffold nom d'Utilisateur:string email:string
râteau abandonnée! undefined method `migration_error=' pour ActiveRecord::Base:Classe
Erreur lors du lancement serveur Rails: undefined method 'configurer'
Quand j'essaie de lancer une nouvelle application (pour Hartl du tutoriel, Chapitre 2), au stade échafaudage début, j'ai eu une erreur de ce type:
**undefined method `configure' for #<SampleApp2::Application:0x00000101a74610> (NoMethodError)**
Mais merci pour les exemples ci-dessus, j'ai édité le développement.rb fichier:
DemoApp::Application.configure do
(Oui, ma demande est appelée demo_app j'ai donc transformé son nom).
Après cela, j'ai essayé d'exécuter échafaudage de nouveau mais j'ai reçu un nouveau message d'erreur:
**method_missing': undefined method raise_in_transactional_callbacks=' for ActiveRecord::Base:Class (NoMethodError)**
En réponse à des cas similaires, indique un migration de la méthode qu'il devrait être retiré du dossier de développement.rb. De même, j'ai essayé de trouver dans ce fichier raise_in_transactional_callbacks méthode, mais il n'est pas là!
En outre, je dirais que c'est le code complet qui produit de la cmd est très large:
C:\Sites\demo_app>rails generate scaffold User name:string email:string
invoke active_record
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `raise_in_transactional_callbacks=' for ActiveRecord::Base:Class (NoMethodError)
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:166:in `block (3 levels) in <class:Railtie>'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:165:in `each'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:165:in `block (2 levels) in <class:Railtie>'
…
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-4.0.2/lib/rails/commands.rb:48:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
Où ...(points de suspension) - spécialement taillée même code.
C'est tout. Je serais reconnaissant pour toute aide!
Vous devez vous connecter pour publier un commentaire.
Votre
config/application.rb
a la ligne suivante:config.active_record.raise_in_transactional_callbacks = true
Ce n'est pas une configuration valide de valeur dans votre version de Rails. Vous aurez besoin de le supprimer ou de le commenter pour continuer.
Remarque: cette erreur et celui qui a procédé il sont indicatives d'une incomplète Rails de changement de version. Si vous êtes dans les premiers stades d'un didacticiel, vous pourriez envisager sérieusement le redémarrage de votre application à l'aide de votre version préférée de Rails dès le début. Cela vous aidera à éviter ce type d'erreur jusqu'à ce que vous êtes plus familier avec la technologie.
rails app:update
après la mise à niveau des rails 😉J'ai eu le même problème lors de la mise à niveau d'une application à partir de Rails 5.0.1 pour Rails 5.1.0.beta1.
Lors du démarrage du serveur (
rails s
), j'ai obtenu le message d'erreur suivant:Mêmes maux, les mêmes remèdes.
En commentant la ligne suivante, dans
config/application.rb
, a résolu le problème...Après quelques recherches, j'ai trouvé que cette ligne était par défaut dans les Rails 4.2.1, a disparu dans les Rails 5.0.0, et maintenant génère une erreur dans les Rails 5.1.0.beta1...
Si vous ne voyez pas
config.active_record.raise_in_transactional_callbacks = true
dansconfig/application.rb
il pourrait exister dans votre environnement de configs. Pour mon application, il a été mis enconfig/environments/development.rb
etconfig/environments/test.rb