学習記録

アウトプット用に作りました

色々知識メモ

何時間後などの時間指定の方法

現在時から見て一時間後(未来)

DateTime.now.since(1.hour)

現在時から見て一時間前(過去)

DateTime.now.ago(1.hour)


content_tag

content_tagはビューでタグを記載するときに使います。セキュリティー面でとても良い書き方です。

content_tag(:i, nil, class: "fa fa-star")
=> <i class="fa fa-star"></i>

※ フォントアイコンを表示するときは、iタグで空要素を作って、class属性値にfaとアイコンごとのクラスをつけます。空文字だからnilを入れています。


改行させずにタグ同士を横並びに表示

この書き方だと星とハートのアイコンが縦に表示されます。

<i class="fa fa-star"></i>
<i class="fa fa-heart"></i>

これを横表記にしたいときは下記のようにdivタグで囲むように記載します。

<div>
  <i class="fa fa-star"></i>
  <i class="fa fa-heart"></i>
</div>

他にも横並びにすることができる書き方があります。

<i class="fa fa-star", style: 'display: inline'></i>
<i class="fa fa-heart", style: 'display: inline'></i>

参考 : 【CSS】displayの使い方を総まとめ!inlineやblockの違いは?

<div class="d-inline-flex">
  <i class="fa fa-star"></i>
  <i class="fa fa-heart"></i>
</div>

参考 : Bootstrap4に用意されているクラス【flex編】 | Webお役立ちネタ帳


I18n#lを使って時刻の表記をする

作成日時などの時刻表示を直感的にわかりやすくするために使います。

l(@tweet.created_at)
=> 2021/05/05 12:00:00 

デフォルトで出力すると上記のような表記になります。もし違う書き方にしたいときはconfig/locals/ja.ymlファイルに定義します。

ja:
  time:
    formats:
      long: "%Y年%m月%d日(%a) %H時%M分%S秒 %z"
      short: "%y/%m/%d %H:%M"
l(@tweet.created_at, format: :short)
=> 2021/05/05 12:00

このようにカスタマイズすることもできます。

参考 : あなたはいくつ知っている?Rails I18nの便利機能大全! - Qiita