小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Ruby on Railsでlink_toの出力値を動的に変更する

Ruby on RailsでHTMLのリンクを作成する際に、リンクのタイトルやリンク先URLを動的に変更したいという場合がある。たとえば、次の画面のように、リンクのタイトルにはブックマークのタイトルを、リンク先URLにはブックマークしたURLを出力する。

HTMLのリンクを作成する場合はlink_toというヘルパーメソッドを用いる。link_toメソッドは以下のような使い方をする。

<%= link_to 'リンクのタイトル', リンク先URL %>

リンクのタイトルやリンク先URLにプログラムの値を渡す場合は、出力する値を#{}で囲む。#{}で囲まれた部分は、プログラムの実行結果が文字列として出力されるようになる。

#{bookmark.name}のように指定する
<table>
  <tr>
    <th>タイトル</th>
    <th>カテゴリ</th>
  </tr>
<% for bookmark in @bookmarks %>
  <tr>
    <td><%= link_to "#{bookmark.name}", "#{bookmark.url}" %></td>
    <td><%=h bookmark.bookmark_category.name %></td>
    <td><%= link_to '表示する', bookmark %></td>
    <td><%= link_to '編集する', edit_bookmark_path(bookmark) %></td>
    <td><%= link_to '削除する', bookmark, :confirm => '削除しますか?', :method => :delete %></td>
  </tr>
<% end %>
</table>