2010-03-24 4 views
0

Je commence tout juste à écrire des rails rubis. J'ai écrit un contrôleur, mais il se trompe nombre d'arguments "arguments (1 pour 0)", je ne peux pas comprendre pourquoi. Il n'a aucune information sur où l'erreur s'est produite? Il a une liste complète des traces de pile mais mon fichier de contrôleur n'est pas là!Sortie de débogage rail Ruby

Dans mon contrôleur j'ai juste deux méthodes, que j'allais tester activemq. Mais après avoir mis le contrôleur hors tension, j'ai eu l'erreur ci-dessus, donc j'ai commenté tout le code, mais j'ai toujours la même erreur. Je ne peux pas comprendre pourquoi.

J'ai cherché google pour ruby ​​debug, je n'ai rien trouvé d'utile.

Voici ma source de commande:

class ActivemqTestController < ApplicationController 
    def send 
    #client = Stomp::Client.open("stomp://localhost:61613") 
    #station_id=101 
    #data = {'station_id' => station_id, 'username' => 'yangyanzhe'} 
    #client.publish('/listener/add', data) 
    end 

    def receive 
    #client = Stomp::Client.open("stomp://localhost:61613") 
    # Processing loop 
    #client.subscribe('/listener/add', headers) do |msg| 
     # Process your message here 
     # Your submitted data is in msg.body 
     #puts msg['username'] + " joined " + msg['station_id'] + "\n" 
     #client.acknowledge(msg) 
    #end 
    #client.join # Wait until listening thread dies 
    end 
end 

Ceci est l'erreur:

ArgumentError in Activemq testController#index 

wrong number of arguments (1 for 0) 
RAILS_ROOT: D:/rubyapps/radio 

Application Trace | Framework Trace | Full Trace 
f:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `send' 
f:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:532:in `process_without_filters' 
f:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/filters.rb:606:in `process' 
f:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:391:in `process' 
f:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:386:in `call' 
f:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/routing/route_set.rb:437:in `call' 

Merci pour toute aide à l'avance.

Répondre

4

Selon votre journal et la méthode special.send de Ruby (définie pour tous les objets), je recommande de ne pas appeler votre action send. Devrait résoudre le problème.

Si vous voulez que votre URL ressemble à .../send, vous pouvez toujours corriger cela dans le routeur.

+1

O, c'est pourquoi. Je vous remercie. Pourtant, je pense que ruby ​​pourrait me montrer un message significatif – Darkerstar

+0

Je me demande pourquoi les rails utilise '.send' plutôt que' __send__'. –

Questions connexes