[JAVA] Ist es ein Verlust, wenn Sie es nicht wissen? Rails [Super] 5 Auswahlen, um Fehler zu finden, um Anfängern zu entkommen

Einführung

Selbst bei Fehlern wie "Sie können verstehen, indem Sie die Fehlermeldung lesen!" </ B> können Sie sich als Super-Anfänger vorerst auf Google-Lehrer verlassen. Dieser Artikel ist ein Artikel darüber, wie man mit einem bestimmten Fehler umgeht, der für einen solchen geschrieben wurde. "Ich werde die Fehlermeldung vorerst kopieren und einfügen" </ B> Level Ruby on Rails Super-Anfänger.

Beispiel 1: Die japanische Lokalisierung der Fehlermeldung funktioniert nicht ... (NoMethodError (undefinierte Methode `deep_symbolize_keys ')

Lassen Sie uns die Fehlermeldung mit I18n ins Japanische übersetzen!

Referenz: Japanische Lokalisierung mit I18n mit Rails

In Ordung! Ich habe die aus dem Web heruntergeladene japanische Datei eingestellt

ja.yml



ja:
activerecord:
errors:
messages:
record_invalid: "Überprüfung fehlgeschlagen: %{errors}"
restrict_dependent_destroy:
has_one: "%{record}Kann nicht gelöscht werden, da es existiert"
has_many: "%{record}Kann nicht gelöscht werden, da es existiert"

Das? Irgendwie liegt ein Fehler vor ...

NoMethodError (undefined method `deep_symbolize_keys' for "String":String):

Was meinst du?

Fehlerursache

Der Einzug in config> locales> ja.yml ist falsch und i18n wird nicht richtig übersetzt.

Fehlerbehebung

Die richtige Beschreibung besteht darin, den Einzug für jedes Element um zwei Leerzeichen mit halber Breite zu verringern. Wenn Sie kopieren und einfügen, kann sich der Einzug verschieben. Laden Sie die Datei mit einem Befehl herunter und platzieren Sie sie im Ordner config> locales.

#Laden Sie die japanische Übersetzungsdateivorlage herunter
wget https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -P config/locales/
ja:
  activerecord:
    errors:
      messages:
        record_invalid: "Überprüfung fehlgeschlagen: %{errors}"
        restrict_dependent_destroy:
          has_one: "%{record}Kann nicht gelöscht werden, da es existiert"
          has_many: "%{record}Kann nicht gelöscht werden, da es existiert"

Referenz

[NoMethodError (undefinierte Methode `deep_symbolize_keys 'für" Hello ": String):](https://github.com/2016chubachi/tabitomo/wiki/NoMethodError- (undefined-method-% 60deep_symbolize_keys% 27-for-% 22% E3) % 81% 93% E3% 82% 93% E3% 81% AB% E3% 81% A1% E3% 81% AF% 22: String) :)

Da die Fehlermeldung nach dem Standard von Ruby on Rails auf Englisch angezeigt wird, sollte sie ins Japanische übersetzt werden, damit der Benutzer sie leicht verstehen kann.

Wie man es in Rails japanisch macht

Japanische Lokalisierung der Rails-Validierungsfehlermeldung --Qiita

Beispiel 2: Mit Partial geladene Ansicht wird nicht angezeigt ... (Partial fehlt)

Ich versuche, _comment.html.erb unter den Kommentaren von posts / index.html.erb zu lesen.

Ordnerstruktur

app
 - views
    - posts
        - index.html.erb
    - comments
        - _comment.html.erb

ruby:posts/index.heml.erb


  <%= render partial: "comment" %>

Das? Ein Fehler…

Missing partial xxx/_yyy, application/_yyy with {:locale=>[:ja], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :jbuilder]}.

Fehlerursache

Der Pfad der Teilansicht ist falsch angegeben.

Lösung

Geben Sie beim Rendern (Lesen) einer Teilansicht den Pfad mit dem Ordnernamen / Ansichtsnamen an. </ b>

ruby:posts/index.heml.erb


  <%= render partial: "comments/comment" %>

Ich habe die Ordnerhierarchie nicht angegeben und konnte sie daher nicht lesen.

Beispiel 3: Die Ansicht kann auch nach Schienen nicht angezeigt werden ... (es fehlt eine Vorlage für dieses Anforderungsformat und diese Anforderungsvariante.)

<Controller-Name>Controller#<Aktionsname> is missing a template for this request format and variant. request.formats: ["text/html"] request.variant: []

Fehlerursache

Es gibt keine Ansicht, die der Controller-Aktion entspricht

Lösung

App> Ansichten> Erstellen Sie "Aktionsname.html.erb" unter dem Ordner des Controllernamens

  • Die Erweiterung hängt vom jeweiligen Format wie .slim und .haml ab

Beispiel 4: Der Code sollte korrekt sein, aber das Programm kann nicht ausgeführt werden ... (undefinierte lokale Variable oder Methode `')

undefined local variable or method ` ' for #<xxxxx> (NameError)

Was ist los ...

ruby:posts/index.html.erb


   <%= render partial: "comment" %>

Fehlerursache

Tatsächlich ist in der Datei ein Leerzeichen in voller Breite enthalten.

Lösung

Löschen Sie den Raum in voller Breite. Ermöglicht das Suchen von Leerzeichen in voller Breite in den IDE-Einstellungen.

Referenz

Was tun, wenn ActionController :: RoutingError nach der Reparatur plötzlich in der Rails-App angezeigt wird

Beispiel 5: JavaScript wird nicht richtig geladen ... (ExecJS :: RuntimeError nicht geschlossener regulärer Ausdruck)

Rails-Fehler sind nicht immer Ruby-abhängig.

ExecJS::RuntimeError in Controller#Action
SyntaxError: missing / (unclosed regex)

Was ist nicht geschlossener Regex ...?

Fehlerursache

Die Beschreibung der Datei App> Assets> Javascripts> .coffee ist falsch. (Der Codierungsblock ist nicht geschlossen, z. B. {}) Daher ist der Teil, in dem das Stylesheet in der Ansicht gelesen wird (application.html.erb), ein Fehler.

ruby:apps/view/layouts/application.html.erb


  <%= stylesheet_link_tag 'application', media: 'all' %>

Lösung

Überprüfen Sie die Beschreibung der Kaffeedatei. Löschen Sie nicht benötigte Teile.

Referenz

Weird error "missing / (unclosed regex)"

Zusammenfassung

Wie war es? Für Tsuyotsuyo-Ingenieure war es zu einfach!

Es ist vorerst gut zu googeln, aber selbst wenn Sie versuchen, die Fehlermeldung einmal aufzuschlüsseln, können Sie von einem Super-Anfänger heranwachsen. Wir unterstützen Ihr Programmierstudium!