[RUBY] Das Argument von link_to ist nil (null) und ein unerwarteter Link wurde generiert, daher habe ich versucht, ihn zu überprüfen

Annahme

Beim Erstellen eines Links mit link_to mit einer Instanzvariablen als Argument wurde ein Link generiert, an den ich mich nicht erinnerte. Was generiert wurde, war ein Link zu dieser Seite, was anscheinend passiert, wenn Sie nil als Argument übergeben. Ich konnte die zugehörige Seite nicht finden, daher werde ich das Überprüfungsergebnis und die Lösung beschreiben. Da wir ein Anfänger sind, würden wir uns freuen, wenn Sie einen Kommentar abgeben könnten, wenn er falsch ist.

Umgebung

ruby 2.6.5 Ruby On Rails 6.0.0

TL;DR

http://localhost:3000/hoge/Wenn Sie die folgende Beschreibung auf Seite 3 vornehmen
Ein Link für diese Seite wird wie unten gezeigt generiert.(Wer wird es benutzen)
<%= link_to nil,nil %>

=> <a href="/hoge/3">/hoge/3</a>

Wenn die Möglichkeit besteht, dass nil in den übergebenen Daten enthalten ist, gehen Sie wie folgt vor, und im Fall von nil ist es leer.
@hoge ・ ・ ・ url Daten oder Null

<%= link_to_if @hoge, @hoge, @hoge %>
Wenn die Möglichkeit besteht, Leerzeichen oder Leerzeichen einzugeben (sollte dies überprüft werden?)
<%= link_to_unless @hoge.blank?, @hoge, @hoge %>

Details (Überprüfungs- und Auflösungsmethode)

link_zu (wie man benutzt)
link_to(Link Text,Pfad[,Möglichkeit,HTML-Attribut oder Ereignisattribut])

Wenn der Linktext Null ist, wird der im Pfad eingegebene Inhalt als Linktext angezeigt.

<%= link_to nil, "https://twitter.com/" %>

=> <a href="https://twitter.com/">https://twitter.com/</a>

Wenn der Pfad Null ist (http)://localhost:3000/hoge/(Auf der Seite aufgeführt)
Der aktuelle Seitenlink wird generiert

<%= link_to "hoge", nil %>

=> <a href="/hoge/">hoge</a>

Der Linktext ist also auch gleich Null,Wenn der Pfad auch Null enthält,
Da der Pfad Null ist, wird der Link der aktuellen Seite generiert
→ Da der Linktext Null ist, wird anscheinend der Link der aktuellen Seite angezeigt.

Wie löst man
Wie benutzt man
link_to_if(Bedingter Ausdruck,Link Text, url [,Möglichkeit,HTML-Attribut oder Ereignisattribut])

@hoge ・ ・ ・ url Daten oder Null

<%= link_to_if @hoge, @hoge, @hoge %>

Wenn Sie ↑ mögen@Wenn hoge null ist, wird nichts generiert, nur wenn Daten vorhanden sind.

Verweise

https://railsdoc.com/page/link_to https://railsdoc.com/page/link_to_if Die Bewegung, wenn Null eingefügt wird, wird in ↓ geschrieben. (Weil link_to schließlich url_for aufruft) https://github.com/rails/rails/blob/f33d52c95217212cbacc8d5e44b5a8e3cdc6f5b3/actionview/lib/action_view/routing_url_for.rb#L79

Recommended Posts

Das Argument von link_to ist nil (null) und ein unerwarteter Link wurde generiert, daher habe ich versucht, ihn zu überprüfen
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich habe versucht, dies und das von Spring @ Transactional zu überprüfen
Ich habe versucht, das Problem mit der Ruby-Karaoke-Maschine zu lösen (es gibt ein Beispiel für die Antwort).
Ich habe versucht, das Problem mit dem Ruby-Bonusgetränk zu lösen (es gibt ein Beispiel für die Antwort).
Da das Lesen von JdbcCodeList von TERASOLUNA langsam ist, habe ich versucht, mehrere gleichzeitig zu registrieren.
Ich habe versucht, das Problem bei der Erstellung von Ruby-Bingokarten zu lösen (es gibt ein Beispiel für die Antwort).
Ich habe versucht zu verstehen, wie die Rails-Methode "link_to" definiert ist
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe versucht, die wichtigsten Punkte des gRPC-Designs und der Entwicklung zusammenzufassen
Rufen Sie den Typ eines Elements eines Arrays ab, um festzustellen, ob es sich um ein Array handelt
Ich möchte das Argument der Annotation und das Argument der aufrufenden Methode an den Aspekt übergeben
Ich habe versucht, die Geschwindigkeit von Graal VM mit JMH zu messen und zu vergleichen
Da der Befehl du, der bei voller Kapazität verwendet wird, schwierig zu verwenden ist, habe ich versucht, ihn mit Rubin zu umwickeln
Ich wollte eine Diashow des Hintergrundbilds erstellen, da das Bild des Sperrbildschirms von Windows 10 wunderschön ist
Ich habe versucht, grafana und postgres [docker-compose] zu verknüpfen
Sazae's Janken Ich habe versucht, den theoretischen Wert und den gemessenen Wert der Wahrscheinlichkeit derselben Hand 5 Mal hintereinander mit Ruby zu überprüfen
[Swift] Wenn die Anwendung iOS 11 oder höher unterstützt, war es nicht erforderlich, Int und Int64 ordnungsgemäß zu verwenden
[Rails] Ich möchte das Linkziel von link_to auf einer separaten Registerkarte anzeigen
Ich habe versucht, den Mechanismus von Emscripten mit einem deutschen Löser zu untersuchen
Ich war süchtig nach der Aufzeichnung des zugehörigen Modells
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
[Memo] Die mysteriöse Bewegung meines Batis, setzen Sie null auf das Element des Listenobjekts und geben Sie es zurück.
[Für Swift-Anfänger] Ich habe versucht, den chaotischen Layoutzyklus von ViewController und View zusammenzufassen
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Ich war süchtig nach Laradock + VSCode + xdebug
Ich habe versucht, eine Umgebung mit WSL2 + Docker + VSCode zu erstellen
Ich habe versucht, mir zu erlauben, die Verzögerung für den Android UDP-Client einzustellen
Ich habe versucht, die Ergebnisse vor und nach der Date-Klasse mit einer geraden Zahl auszudrücken
Ich möchte den Rahmen des Textfelds rot machen, wenn ein Eingabefehler auftritt