みなさんこんにちは!
のむ(@nomu_engineer)です!
今回の記事では、タイトルにもあるとおり、「link_to」の記述の仕方について丁寧に解説していきます
簡単に記述することができますが、しっかりと理解していないとルーティングエラーを招いてしまいます。
実際に僕が体験したルーティングエラーになる要因も含めて記事にまとめました。
この記事を読むメリット
・link_toの記述の仕方がわかる
・link_toによるエラーの可能性を一つ消せる
この記事を読むおすすめの読者
・プログラミング初心者
・駆け出しエンジニア
・link_toの記述を詳しく知らない方
それでは早速本題の方に入っていきたいと思います
「link_to」とは??
そもそも「link_to」についてあまり知識がない方もいるかと思いますので、少し触れておきたいと思います!
「link_to」とはform部品の一つで、ビューでリンクを表示するためのメソッドです。
htmlを学習している方はスッと入ってくるかと思いますが、いわゆるhtmlのaタグです。
ビューで使用する、ActionView::Helpers::UrlHelperクラスで定義されている、helperメソッドの一つになります。
「link_to」の記述の仕方
ここからは「link_to」の記述の仕方について解説していきます!
「link_to」メソッドの書き方としては、「link_to」の第一引数にビューに表示する文字列、第二引数にリンク先のパス(URL)を指定します。
記述の仕方は以下の通りです。
<%= link_to "表示する文字列", リンク先のパス(URL) %>
それでは実際に値を入れて記述していきます。
<%= link_to "Google", "https://www.google.com/"
上記の記述は誰もが知っているGoogleのトップページのURLです。
このように「link_to」メソッドを使うことで、Googleのトップページにユーザーを遷移させることができるリンクを作成することができます。
次に同じアプリ内のパスを指定する書き方で「link_to」を記述してみます。
<%= link_to "商品一覧", "/items/index" %>
上記の記述をすることで、アプリ内で定義している、商品一覧のページに遷移するためのリンクを作成することができます。
上記のパスの指定がわからない方は、ルーティングの確認(rails routesコマンド)をターミナルで行うことで、どのパスを指定したらいいのかがわかります。
URI Patternに記載されているパスになります。
そして、最後、ルーてイングの名前(Prefix)を用いて「link_to」を記述する仕方があります。
ここで僕はある過ちを犯して、エラーに苦しみました。
是非ここは最後まで読んでいただきたいです。
まずはこちらの画像をご覧ください!

1番上の1番左側にPrefixと書いてあると思います。
そして、その下に「new_user_session」や「destroy_user_session」等の記述がしてあると思います。
こちらのPrefixを指定することでも「link_to」メソッドを用いたリンクの作成が行えます。
記述の仕方は以下の通りです。
<%= link_to "ログイン画面", new_user_session_path %>
ここで注意していただきたいことがあります!
このPrefixを用いた書き方をする場合は、ダブルクォーテーションでパスを囲んではいけません!!!
Prefixをダブルクォーテーションで囲むと、ただの文字列として認識されてしまいます!!
なので、ルーティングエラーを引き起こしてしまいます。。
僕は実際にそれでルーティングエラーを起こしました。。。笑
原因の特定までにかなりの時間を使いました。
エラーを経験することは大事ですが、無駄なエラーは本当に時間の無駄なので、気をつけましょう!!
最後に
以上で「link_to」メソッドの記述の解説を終わりたいと思います!
最後にまとめると、
・「link_to」メソッドは、ビューでリンクを表示するためのメソッド
・第一引数はビューで表示したい文字列を記述
・第二引数はリンク先のURLやパスを指定
・Prefixを用いる場合はダブルクォーテーションで囲まない!!
以上になります!
無駄なエラーを起こさないようにするためにも、しっかり抑えておきましょう!!
ありがとうございました。