プログラミング学習

Rubyやrailsについて学んだことをアウトプットしています。

【rails エラー】エラーから学ぶlink_toメソッド

先日redirect_toメソッドから生成される遷移先の理解不足によってエラーが発生してしまいました。

【Rails】エラーメッセージから学ぶredirect_toメソッドについて - プログラミング学習

今回はredirect_toメソッドと似ているlink_toメソッドについて学ぶことでrailsの遷移に対する理解をより深めていきたいと思います!

  • link_toメソッドとは
  • link_toメソッドの使い方


・link_toメソッドとは
link_toメソッドとは
「リンクを作成するためのメソッドのこと」
を指します。
詳しく説明するとlink_toメソッドを使用することによってHTMLのリンクタグであるaタグを簡単に生成することができるのです。
それでは詳しい使用方法について見ていきましょう。

・基本の書き方
link_toメソッドは以下のようにリンク元になる文字とリンク先のパスで構成されています。

<%= link_to '表示したい文字', パス %>

このコードを書くことによって

<a href="パス">表示したい文字</a>

リンク先で指定できるものは大きく2つに分けられます。
・内部リンク…作成中のアプリ内のページを表示するリンク
・外部リンク…それ以外のリンク

  • 内部リンクの作成方法 内部リンクの具体的な例としては以下のようなコードが挙げられます。
<%= link_to 'New Fruit', new_fruit_path %>

ここで「new_fruit_path」の部分について詳しく見ていきましょう。
このpathはURLヘルパーメソッドと言い、URLを作成することを簡単にしてくれています。
今回のnew_fruit_pathからはfruit/newというURLを作成してくれています。
また、このpathはターミナルでrails routesコマンドを実行すると確認することができます。
f:id:yusuke_learning:20211027231008p:plain 写真の左側のPrefixの部分に_pathを付け加えてあげることで指定したいURLのヘルパーメソッドを作ることができます。
ただし、URI Pattern欄に「:id」と表示されている場合は、内部リンクのパスで「fruit」のようにパラメータを指定する必要があるので注意が必要です。
パラメーターを指定することによって編集や削除を行うためのリンクを作成することができます。
例えば、以下のようにviewページ上でfruitオブジェクトを作成したうえでそのパラメーターを取得したURLを作成すると

<% @fruits.each do |fruit| %>
<%= link_to 'Edit', edit_fruit_path(fruit) %>

下のようにそれぞれのオブジェクトに対応したリンクを作成することができます。

<a href="/fruits/1/edit">Edit</a>

また、削除に関しても以下のようにオブジェクトを指定することでそれぞれを削除することができます。

<%= link_to '削除', fruit, method: :delete %>

ここでのmethod: :delete とはHTTPメソッドの種類を表しています。link_toメソッドではデフォルトがGETメソッドに設定されているのでdeleteに変更してあげることで削除の指示を指すことができます。

・外部リンクの作成方法

外部リンクとはウィキペディアなど自分のアプリ以外のシステムで動いているサイトへのリンクのことを指します。
書き方としては以下のようになります。

<%= link_to '果物 - Wikipedia', "https://ja.wikipedia.org/wiki/果物" %>


以上でlink_toメソッドについての説明を終わります。
railsでよく見るlink_toに対する理解を深めることが今後の勉強にも役立つと思うので基礎を忘れずに勉強続けていきます!!


参考記事:


【Rails入門】link_toの使い方とオプションをわかりやすく解説! | 侍エンジニアブログ

【初学者向け】_urlや_pathといったヘルパーメソッドの使い方 - Qiita