Lors de la création d'un lien avec link_to avec une variable d'instance comme argument, un lien dont je ne me souvenais pas a été généré. Le lien de la page a été généré, apparemment survenant lorsque nil a été passé en argument. Je n'ai pas trouvé la page associée, je vais donc décrire le résultat de la vérification et la solution. Puisque nous sommes un débutant, nous vous serions reconnaissants si vous pouviez commenter si cela est erroné.
ruby 2.6.5 Ruby On Rails 6.0.0
TL;DR
http://localhost:3000/hoge/Si vous faites la description suivante dans la page 3
Un lien pour cette page est généré comme indiqué ci-dessous.(Qui l'utilisera)
<%= link_to nil,nil %>
=> <a href="/hoge/3">/hoge/3</a>
S'il est possible que nil soit inclus dans les données transmises, procédez comme suit, et dans le cas de nil, ce sera vide.
@hoge ・ ・ ・ données url ou nul
<%= link_to_if @hoge, @hoge, @hoge %>
S'il y a une possibilité de saisir des caractères vides ou des espaces (doit-on valider?)
<%= link_to_unless @hoge.blank?, @hoge, @hoge %>
link_à (comment utiliser)
link_to(Texte du lien,chemin[,option,Attribut HTML ou attribut d'événement])
Si le texte du lien est nul, le contenu saisi dans le chemin sera affiché comme texte du lien.
<%= link_to nil, "https://twitter.com/" %>
=> <a href="https://twitter.com/">https://twitter.com/</a>
Si le chemin est nul (http)://localhost:3000/hoge/(Répertorié sur la page)
Le lien de la page actuelle est généré
<%= link_to "hoge", nil %>
=> <a href="/hoge/">hoge</a>
Donc, le texte du lien est également nul,Si le chemin contient également nil,
Puisque le chemin est nul, le lien de la page courante est généré
→ Le texte du lien étant nul, il semble que le lien de la page courante soit affiché.
Comment résoudre
Comment utiliser
link_to_if(Expression conditionnelle,Texte du lien, url [,option,Attribut HTML ou attribut d'événement])
@hoge ・ ・ ・ données url ou nul
<%= link_to_if @hoge, @hoge, @hoge %>
Si vous aimez ↑@Si hoge est nul, rien n'est généré, uniquement lorsqu'il y a des données.
https://railsdoc.com/page/link_to https://railsdoc.com/page/link_to_if Le mouvement lorsque nul est inséré est écrit en ↓. (Parce que link_to appelle finalement url_for) https://github.com/rails/rails/blob/f33d52c95217212cbacc8d5e44b5a8e3cdc6f5b3/actionview/lib/action_view/routing_url_for.rb#L79
Recommended Posts