🦖
memo
PFの評価が返ってきて、
メンターさんに教えていただいた事をメモ。
simple_formatメソッド
<%= simple_format(@post.body, sanitize: true) %>
最初作成した時は、
カリキュラムでやった、xxx.text_area
で作成したけど、
これだと、フィールド上で改行しても、いざ投稿したら改行が反映されないカッタ。
ので、simple_formatメソッド
を使うと、フィールドで改行したら、ちゃんと反映される。
simple_format は表示するためのヘルパーであり、ユーザーからの入力フォーム(text_area)を作成するものではありません。そのため、text_area を変更する必要はなく、simple_format を使うのはユーザーが入力した内容を表示する際です。
DMが来た日時表示
「 DM機能メッセージ表示は、各メッセージの投稿日時表示 」確かに〜。
<div class="row">
<table class="table table-hover">
<% if @messages.present? %>
<% @messages.each do |m| %>
<tr>
<td><%= m.user.name %></td>
<td><%= m.message %></td>
<td><%= m.created_at.strftime('%Y/%m/%d %T') %></td>
</tr>
<% end %>
<% end %>
</table>
</div>
通知機能にも、あった方がいいよな〜っと思ったので、
通知の方にも、日時表示できるようにしました。
今あるSNSのDM機能は、「何分前」「何時間前」って通知に表示されてるから、
その方法を調べた。
time_ago_in_words
メソッド
<%= time_ago_in_words(notification.created_at) %> 前
time_ago_in_wordsメソッド
- 「 5 minutes 」「 2 hour ago 」といった形式で時間を表示できる
- 日本語に変換したい場合は、
rails-i18n
を使っての本語にする。
config/locales/ja.yml
ja:
datetime:
distance_in_words:
half_a_minute: "30秒"
less_than_x_seconds:
one: "1秒未満"
other: "%{count}秒未満"
x_seconds:
one: "1秒"
other: "%{count}秒"
less_than_x_minutes:
one: "1分未満"
other: "%{count}分未満"
x_minutes:
one: "1分"
other: "%{count}分"
about_x_hours:
one: "約1時間"
other: "約%{count}時間"
x_days:
one: "1日"
other: "%{count}日"
about_x_months:
one: "約1ヶ月"
other: "約%{count}ヶ月"
x_months:
one: "1ヶ月"
other: "%{count}ヶ月"
about_x_years:
one: "約1年"
other: "約%{count}年"
over_x_years:
one: "1年以上"
other: "%{count}年以上"
almost_x_years:
one: "1年近く"
other: "%{count}年近く"
デフォルトタイムゾーン
- RailsはデフォルトタイムゾーンがUTC(協定時)になってるため、
created_at``updated_at
が、日本時間から9時間差になっているので、日本時間に変更する。
config/application.rb
require_relative "boot"
require "rails/all"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module Inuming
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 6.1
# Configuration for the application, engines, and railties goes here.
#
# These settings can be overridden in specific environments using the files
# in config/environments, which are processed later.
#
# config.time_zone = "Central Time (US & Canada)"
<追記>
config.time_zone = 'Tokyo'
<ここまで>
# config.eager_load_paths << Rails.root.join("extras")
config.i18n.default_locale = :ja
end
end
おまけ
今更書くのは、きっと恥ずかしいのですが、へぇってなった事。
Gitのコミットメッセージでの"Add"
Gitでは、コミットメッセージとして、"Add"を使うことがよくある。
これは、新しいファイルや機能を追加したことを意味する。
マイグレーションでの"Add"
Railsのマイグレーションファイルを作成する際、例えばテーブルに新しいカラムを追加する時、マイグレーションの名前に"Add"を使う。
Discussion