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.
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 %>
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.
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