2010-06-18 3 views
1

La source est extrait ci-dessous:NoMethodError dans des rails

Affichage /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/templates/rescues/diagnostics.erb où la ligne # posée:

private method `gsub' called for #<NoMethodError: undefined method `closed?' for nil:NilClass> 

Extracted source (around line #): 

RAILS_ROOT: /home/sharath/Desktop/RORWorkspace/ITPLOW1 

Il travaillait avant d'installer Sunspot: Une recherche Solr-Powered Engine pour Ruby.

Je travaille sous Ubuntu 10.04.

Répondre

1

J'ai besoin de voir la pile complète pour être sûr, mais c'est en fait probablement un message d'erreur de connexion HTTP peu utile bouillonnant de RSolr (la bibliothèque la Sunspot utilise pour la connexion Solr de bas niveau). Solr est-il en cours d'exécution (c'est-à-dire avez-vous exécuté rake sunspot:solr:start)? Pouvez-vous accéder à http://localhost:8982/solr/admin?

+0

merci .. Son travail maintenant après la course de taches solaires ... Je suis nouveau à ce que je ne savais pas que vous devez exécuter le moteur de recherche – sharath

0

Ce qui se passe probablement, c'est que vous essayez de faire une substitution sur une variable que vous pensiez initialiser, mais que vous avez omis de donner une valeur réelle.

Par exemple, si vous aviez un formulaire où un message et l'une des propriétés que vous voulez est le contenu, normalement vous devez récupérer ces informations dans le contrôleur avec

params[:message][:content] 

Et si vous vouliez filtrer, vous feriez quelque chose comme

params[:message][:content].gsub(/<[^>]*>/,"") 

Mais si l'utilisateur n'a pas quoi que ce soit dans le champ de contenu, la variable params[:message][:content] ne serait pas réglée. Par conséquent, il est nul et vous essayez de faire nil.gsub

+0

Mauvais exemple. si l'utilisateur n'a rien entré dans le champ de contenu alors params [: message] [: content] = '' (& not null comme mentio ci-dessus) – Salil

+0

Même si je remplis le contenu je reçois même erreur – sharath

Questions connexes