色々知識メモ
何時間後などの時間指定の方法
現在時から見て一時間後(未来)
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
このようにカスタマイズすることもできます。