Frage

Aus irgendeinem Grund habe ich angefangen, diesen Fehler zu erhalten, nachdem ich auf Rails 3.2 wechselst.Ich denke, es hat etwas mit ACL9-Plugin zu tun, das ich versucht habe, installiert zu werden, aber nichts änderte sich.

Ich habe die Plugins in lib / plugins verschoben und den Initialisierer in Konfigurations- / Initialisierer hinzugefügt, jedoch erneut, denselben Fehler.

Ich suchte nach Lösung bei ACL9 Repo auf Github, konnte aber nichts finden.Vielleicht ist es doch nicht ACL9.

Ich habe Papierclip, ACL9, AuthLogic installiert. generasacodicetagpre.

edit (gelöst): Es dauerte eine Weile, um herauszufinden, und ich bin immer noch nicht ganz sicher, was passiert ist.Ich denke, es hat mit ACL9-Support von Rails 3.1+

War es hilfreich?

Lösung

Ich bin ein Neuling, um ror zu ror und er habe den gleichen Fehler beim Gehen von ror "Erste Anleitung".

Das klingt dumm, aber andere könnten den gleichen Fehler machen, wie ich bin, also poste, was ich in Ror aus Newbies Augen bemerkte, generasacodicetagpre.

Hinweis ": Anwesenheit", sollte es ": Anwesenheit" sein.Nun wirft die Schiene einen Syntaxfehler generasacodicetagpre.

Wenn Sie jedoch Ihren Browser "aktualisieren", versteckt es den Syntaxfehler, stattdessen gibt es generasacodicetagpre.

Es scheint, dass Schienen zwischengespeichert sind, ist der Täter.:)

Andere Tipps

Dies ist möglicherweise nicht Ihr Problem, da er sich anhört, als hätten Sie bereits einen funktionierenden Code, mit dem Sie beginnen, aber für die zukünftige Referenz für andere, bin ich aufgrund eines einfachen Tippfehlers in meinem Modellcode, wie folgt:

generasacodicetagpre.

was hätte sein sollen: generasacodicetagpre.

Beachten Sie das "Maximum" vs. ": Maximum" - Dies führte zu dem genauen Null-Fehler und ging weg, als ich diesen Tippfehler behoben habe.

Nicht sicher, ob dies derselbe Fehler ist, aber ich hatte ein ähnliches Problem.Bei einer ersten Ladung eines Buggy-Modells antwortet Rails mit einem Routing-Fehler und dann für die Anforderungen, die anschließend anregen, antwortet sie mit dem generellen Stapel-Trace. 0 generasacodicetagpre.

oder generasacodicetagpre.

I agree with bmoeskau that you should check your model code for bugs. To my surprise, models apparently sometimes get loaded during the routing phase. I discovered:

  1. The code that causes the problem, in my case, is in the model, not in the controller where I would expect it.
  2. The undefined method `key?' for nil:NilClass error often only occurs after the first time I access the page.

As far as I can tell, what happens is

  1. Suppose we have a scaffold for Examples, with some bad code in app/models/example.rb
  2. A request is made for /examples
  3. The routing part of Rails matches that to app/controllers/examples_controller.rb but it first loads app/models/example.rb. I don't know why it loads the model, but the effect is, I conjecture: The error in the model stops short a part of the routing code, corrupting its construction of a cache of routes.
  4. At this point, if I'm lucky the error will be reported back to me in the browser. Sometimes, however, I simply get a message saying No route matches [GET] "/examples" (To be fair to Rails, this added complication seems to be the fault of not using resources :examples to make the route. The following happens regardless).
  5. A second request is made for /examples
  6. Conjecture: This time the Rails routing code tries to use its cached reference to app/controllers/examples_controller.rb but the routes cache is corrupt (a variable is nil) because the code that sets never finished running.

This last item is most annoying because the problem that caused it (the bad code in the model) isn't even being run.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top