J'ai suivi avec un tutoriel pour une application Rails. Le tutoriel est basé sur Rails 5 et j'utilise Rails 5.1.2. Tout fonctionne très bien localement et poussé à heroku sans problèmes. Cependant, quand je suis allé à créer un utilisateur d'administration sur la base de données de production en cours d'exécution:Comment puis-je exécuter la console rails dans Heroku? Rails 5.1 et postgresql
$ heroku run rails c
il renvoie l'erreur suivante:
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in
require': cannot load such file -- rack/handler/c (LoadError) from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in
block in require' from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:258:inload_dependency' from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in
require' from /app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/handler.rb:74:intry_require' from /app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/handler.rb:16:in
get' from /app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/server.rb:301:inserver' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:68:in
print_boot_information' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:38:instart' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:131:in
block in perform' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:126:intap' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:126:in
perform' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb:27:inrun' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in
invoke_command' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor.rb:387:indispatch' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/command/base.rb:63:in
perform' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/command.rb:44:ininvoke' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands.rb:16:in
' from bin/rails:9:inrequire' from bin/rails:9:in
'`
Pour contourner ce que je peux courir:
$ heroku run bash
$ rails c
et cela me permet de mettre à jour la base de données de production. Alors que cela fonctionne et me procure ce dont j'ai besoin. Je veux savoir pourquoi la commande d'origine ne fonctionne pas. J'ai cherché partout une réponse et ne peux pas trouver quelque chose qui s'applique à moi. J'essaie d'améliorer mes compétences en développement et je voudrais comprendre pourquoi le problème original ne fonctionnera pas.
Je peux ajouter tous les fichiers que tout le monde a besoin de voir, mais je ne sais même pas lesquels seraient pertinents à ce problème.
Est-ce que vous publiez l'ensemble du message d'erreur? –
https://devcenter.heroku.com/articles/getting-started-with-rails5#rails-console indique que 'heroku run rails console' est la bonne commande pour accéder à votre console rails sur heroku. Basé sur d'autres articles de stackoverflow ceci peut être un gem manquant ou un paramètre d'environnement qui n'est pas trouvé. –