1. ヘルパーメソッドとは?
Railsのヘルパーメソッドは、ビュー(View)での処理を簡潔に書くためのメソッドです。
たとえば、日付のフォーマット変換やリンクの作成を簡単に記述でき、コードの可読性を向上させます。
2. よく使われるヘルパーメソッド
① link_to(リンクを作成する)
<a>タグを簡単に生成できます。
<%= link_to "ホームへ戻る", root_path %>
URLだけでなく、オプションを追加することでCSSクラスの適用やデータ属性の追加も可能です。
<%= link_to "詳細を見る", article_path(@article), class: "btn btn-primary" %>
② image_tag(画像を表示する)
画像タグを簡単に生成できます。
<%= image_tag "logo.png", alt: "サイトのロゴ", class: "logo" %>
③ form_with(フォームを作成する)
Railsでは、フォームの作成もヘルパーメソッドを使うと簡単になります。
<%= form_with(model: @user, local: true) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.submit "送信" %>
<% end %>
④ number_to_currency(通貨フォーマットに変換する)
数値を通貨の形式に変換できます。
<%= number_to_currency(1000) %> # => ¥1,000
オプションを指定すれば、通貨の種類を変更することも可能です。
<%= number_to_currency(1000, unit: "$", delimiter: ",", precision: 2) %>
# => $1,000.00
⑤ time_ago_in_words(○○前を表示する)
投稿時間などを「◯◯前」に変換できます。
<%= time_ago_in_words(@article.created_at) %> 前
3. カスタムヘルパーを作成する
Railsでは、独自のヘルパーメソッドも作成できます。
例えば、文字数を制限して「…」をつけるメソッドを作りたい場合:
① app/helpers/application_helper.rb にメソッドを定義
module ApplicationHelper
def truncate_text(text, length = 30)
text.length > length ? "#{text[0, length]}..." : text
end
end
② ビューで使用する
<%= truncate_text(@article.title, 20) %>