Help us understand the problem. What is going on with this article?

全部知ってる?便利なビューヘルパー 集 [Ruby On Rails]

初めに

ビューヘルパーについて学習したので、アウトプット代わりにメモを残します。

ビューヘルパーの紹介

link_to

<a>タグを動的に生成するヘルパーです。
表示する文字列、URLの順に引数を渡して記述します。

ruby.html.erb
<%= link_to "qiita", qiita_path %>

#アイコン等を使用したい時
<%= link_to test_path do %>
  <i class="fas fa-adjust"></i><p>test</p>
<% end %>

image_tag

画像を表示させたい時に、使用します。
※画像ファイルはapp/assets/imagesに配置していることを想定しています。

ruby.html.erb
<%= image_tag '/assets/test.JPG'%>
#サイズを指定したい時
<%= image_tage 'test.jpg', size: '100x200' %>

url_for

コントローラーやアクション等を元にURLを動的に生成します。

ruby.html.erb
<%= link_to  'test' , 'http://test.jp/' %>

time_age_in_words

”3分前”、”2日前”、”2週間前”のような日時表示が出来るようになります。
更新頻度の高いサービスでは正確に日時よりの、現在の時刻から差分を表した方がわかりやすい場合があります。

ruby.html.erb
<%= time_ago_in_words(test.created_at) %>

number_to_currency

ロケールに応じて通過のフォーマットを整形するヘルパーです。
localeが:enの場合は$表示になります。

ruby.html.erb
<%= number_to_currency(123) %>
=>"$123.00"

ただし、ロケールだけを安易に切り替えると日本語圏ユーザんび"123円"と表示しているものが、英語圏ユーザには"$123"と表示されてしまいます。その為、ロケール毎に金額を出し分けるようにするか、または通貨を1種類に固定してしまうという対策があります。

truncate

長いテキストを省略するヘルパーです。
ニュースサイト等でよく見かける、文字の途中から....になっているやつです。
文字制限はデフォルトでは30文字です。

ruby.html.erb
<%= truncate(test) %>

#文字制限20文字
<%= truncate(room.detail, length: 20) %>

参考資料

この本を読みました。
基礎的なことからデプロイまで記載されています。
非常に情報量が多い為、良く言うと読み応えがあります。
しかし、サンプルのコードがslimで記載されているので、理解するのに時間を要します。
Ruby on Rails 5の上手な使い方

最後に

ビューヘルパーは以上になります。
長々とお付き合いいただきましてありがとうございました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away