Comment déboguer une application Rails?
Est-il possible de déboguer une application Rails d'une manière similaire à une application Java - définition de points d'arrêt et à s'intégrer dans le code?
Quels sont les meilleurs outils pour cela?
J'ai un hybride Java/Ruby on Rails demande qui je peux courir dans Eclipse ou Netbeans.
Je voudrais étape dans le code de cette application et essayer de comprendre la cause d'un problème que je vais avoir.
Dans Eclipse si j'ai mis un point d'arrêt dans mon blog_controller
puis choisissez le "Debug" du bouton, il semble qu'il utilise le ruby-debug-ide gem pour exécuter le code, mais je reçois ce inutile de sortie et aucune possibilité d'intervenir dans n'importe quel source:
Fast Debugger (ruby-debug-ide 0.4.5) listens on localhost:56726
./war/WEB-INF/app/controllers/blog_controller.rb:1
C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/lib/ruby-debug.rb:101:in `debug_load'
C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/lib/ruby-debug.rb:101:in `debug_program'
C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/bin/rdebug-ide:82
C:/Ruby18/bin/rdebug-ide:19:in `load'
C:/Ruby18/bin/rdebug-ide:19
Uncaught exception: uninitialized constant ApplicationController
Je ne suis pas sûr si je fais quelque chose de mal ou si c'est tout ce que je peux attendre.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Il y a un guide ici pour Netbeans.
Le débogueur, j'utilise le plus est le ruby-debug gem, qui est un gdb-esque de la ligne de commande du débogueur. Une fois que vous apprendre quelques commandes est très rapide et efficace, et vous fournit des fonctions pratiques comme la possibilité de tirer jusqu'à
irb
dans le cadre de votre programme et de le rendre à la volée des changements.Et des cours de base de ligne de commande c'est très pratique lorsque vous avez besoin de déboguer un sur un serveur distant.
Vous pouvez vous attendre à plus. J'ai utilisé Aptana est RadRails version d'Eclipse pour déboguer une application Rails, comme vous le décrivez--définition de points d'arrêt et exécutez le code.
Vous avez peut-être fait quelque chose de mal. Il semble que si il essaie de déboguer un individu contrôleur de fichiers, plutôt que de débogage de l'application Rails. Lorsque j'essaie d'exécuter un contrôleur de fichier à partir de la ligne de commande, je reçois un message similaire:
Dans Aptana RadRails, je choisis
Run > Debug As > Ruby Application
pour déboguer l'application.Pour le vim utilisateurs je vous recommande de regarder dans le vim-ruby-débogueurqui s'inscrit dans la grande avec Tim du Pape rails.vim scripts.
Il vous donne une pratique
:Rdebugger
commande, vous permet de définir des points d'arrêt et ouvrir une scission de la fenêtre pour afficher les valeurs d'une variable.peut-être pas pertinente, mais je voulais poster quelque part: j'ai le message d'erreur "undefined method `run_init_script " pour Debugger:Module" exécuter le débogueur dans les rails 2.3.2. Fait un sudo gem install ruby-debug et le problème a disparu.
En fait, j'ai eu le même problème avec Aptana.
Run > Debug As > Ruby Application
ne fonctionne tout simplement pas. J'ai enfin fait le débogueur de travail en allant à laServers
onglet, puis démarrer le serveur endebug mode
. Après cela, définir des points d'arrêt et de déclencher l'action correspondante. Espérons que cette aide.De débogage? C'est juste savoir où chercher dans le cas de Ruby (et, par extension, des Rails, la plupart du temps.
Le problème dans ce cas est probablement que vous avez encore votre
ApplicationController
appelé application.rb où il devrait être renommé application_controller.rb.Debuggin dans les rails est simple si vous savez comment lire l'erreur stacktrace!! Mais si vous avez besoin de montre explicitement les valeurs lors de l'exécution alors u peut utiliser les rails breakpointer.Ci-dessous le lien pour comment sur breakpointer ..espérons que cette aide!!!
http://destiney.com/blog/rails-breakpointer
Je ne peux pas parler pour Eclipse (jamais bien fonctionné pour moi) ou Aptana (pas essayé), mais par expérience, je peux dire que les deux NetBeans et RubyMine faire ce que vous souhaitez. J'ai les deux cas, vous devriez probablement assurez-vous que le rubis-debug-base et de rubis-debug-ide gemmes sont à jour: RubyMine, en particulier, n'a pas fonctionné pour moi jusqu'à ce qui a été fait.
Je le recommande tout simplement la mise en place de points d'arrêt (en fait je viens de met de la console) pour 99% de débogage avec RoR - cette méthode est simple et utilisable à travers les IDE, de sorte que vous ne jamais avoir à apprendre un nouveau débogueur œuvres.