2017-01-25 2 views
0

Wenn ich im Entwicklungsmodus einen Fehler auf einer App-Seite rails 5.0 erhalte, erhalte ich eine Fehlerseite mit den Rails web-console am unteren Rand der Seite wie im Screenshot unten. Die Konsole scheint ziemlich nützlich zu sein, um die Methoden dieses Controllers auszuführen, in dem der Fehler aufgetreten ist.Show Rails Console auf allen Seiten

Sample console

Ist es möglich, sich auf allen Seiten zu ermöglichen, so kann ich darauf zugreifen, ohne eine Fehlerseite?

+1

Warum nicht einfach 'rails c' im Terminal verwenden? –

+0

Persönlich habe ich nicht viel "Rails-Konsole" auf einem Terminal verwendet. Was ich versuche zu tun, ist Methoden auszuführen, die in "Controller" und "Modelle" sind, so dass ich überprüfen kann, ob sie wie erwartet funktionieren. Der Grund, warum ich versuche, es auf die Seite zu bringen, ist, wenn ich auf einer Seite bin, die Teil eines 'Controllers' ist, kann ich' Methoden' ausführen, die Teil dieses Controllers sind. –

+0

Wenn dies speziell für Testmethoden auf einem Controller gedacht ist, wäre es besser Unit Tests zu schreiben. Erstellen Sie zuerst den Test mit den gewünschten Ergebnissen, und ändern Sie dann den Controller, bis die Tests bestanden wurden. Es heißt Test Driven Development (TDD) –

Antwort

1

In der Web-Konsole Gem page heißt es, Sie können die Konsole manuell auf jeder Seite Ihrer Anwendung ausführen. In der Dokumentation wird Folgendes angezeigt:

Zum Beispiel zeigt die Aufrufkonsole in einer Ansicht eine Konsole auf der aktuellen Seite im Kontext der Ansichtsbindung an.

<% console %> 

aufrufen Konsole in einem Controller wird in Zusammenhang mit der Controller-Aktion in einer Konsole führen:

class PostsController < ApplicationController 
    def new 
    console 
    @post = Post.new 
    end 
end 

Das Verfahren in Kernel definiert ist und Sie können aufrufen es irgendeinen Anwendungscode.

Nur ein Konsolenaufruf ist einmal pro Anfrage zulässig. Wenn Sie mehrere haben, wird ein WebConsole :: DoubleRenderError ausgelöst.

Vielleicht hilft Ihnen das, die Konsole auf den Seiten aufzurufen, auf denen sie angezeigt werden soll.

+0

Ich bekomme den folgenden Fehler, wenn ich es in den Controller 'undefined lokale Variable oder Methode' Konsole 'setzen' –

+0

Es funktioniert für mich, ich habe hier getestet. Stellen Sie sicher, dass Sie diese Versionen des Gems verwenden: 'webconsole', '> = 3.3.0' und 'listen', '= = 3.0.5' –

Verwandte Themen