[RUBY] L'argument de link_to est nul (nul) et un lien inattendu a été généré, j'ai donc essayé de le vérifier

supposition

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

environnement

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

Détails (méthode de vérification et de résolution)

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.

Références

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

L'argument de link_to est nul (nul) et un lien inattendu a été généré, j'ai donc essayé de le vérifier
J'ai essayé de résumer les bases de kotlin et java
J'ai essayé de vérifier ceci et celui de Spring @ Transactional
J'ai essayé de résoudre le problème de la machine à karaoké Ruby (il y a un exemple de réponse)
J'ai essayé de résoudre le problème de la boisson bonus Ruby (il y a un exemple de réponse)
Puisque la lecture de JdbcCodeList de TERASOLUNA est lente, j'ai essayé d'enregistrer plusieurs à la fois.
J'ai essayé de résoudre le problème de création de carte de bingo Ruby (il y a un exemple de réponse)
J'ai essayé de comprendre comment la méthode des rails "link_to" est définie
J'ai essayé de résumer les méthodes de Java String et StringBuilder
J'ai essayé de résumer les points clés de la conception et du développement de gRPC
Obtenez le type d'un élément d'un tableau pour déterminer s'il s'agit d'un tableau
Je veux passer l'argument d'Annotation et l'argument de la méthode d'appel à aspect
J'ai essayé de mesurer et de comparer la vitesse de Graal VM avec JMH
Comme la commande du utilisée lorsque la capacité est pleine est difficile à utiliser, j'ai essayé de l'envelopper avec du rubis
Je voulais faire un diaporama du fond d'écran car l'image de l'écran de verrouillage de Windows 10 est magnifique
J'ai essayé de lier grafana et postgres [docker-compose]
Janken de Sazae J'ai essayé de vérifier la valeur théorique et la valeur mesurée de la probabilité de la même main 5 fois consécutives avec Ruby
[Swift] Si le support de l'application est iOS 11 ou version ultérieure, il n'était pas nécessaire d'utiliser correctement Int et Int64
[Rails] Je souhaite afficher la destination du lien de link_to dans un onglet séparé
J'ai essayé d'étudier le mécanisme d'Emscripten en l'utilisant avec un solveur allemand
J'étais accro au record du modèle associé
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
[Mémo] Le mouvement mystérieux de My Batis, définissez null sur l'élément de l'objet liste et renvoyez-le.
[Pour les débutants Swift] J'ai essayé de résumer le cycle de mise en page désordonné de ViewController et View
J'ai brièvement résumé la grammaire de base de Ruby
J'étais accro au réglage de laradock + VSCode + xdebug
J'ai essayé de créer un environnement de WSL2 + Docker + VSCode
J'ai essayé de me permettre de définir le délai pour le client Android UDP
J'ai essayé d'exprimer les résultats avant et après de la classe Date avec une ligne droite numérique
Je veux rendre le cadre de la zone de texte rouge lorsqu'il y a une erreur de saisie