読者です 読者をやめる 読者になる 読者になる

Lチカ開発ブログ

https://l-chika.com/の開発ブログ

Railsアプリケーション構築時に初期にしたこと

Railsでアプリケーション作成後に、ついつい忘れがちになるのでメモ。

前提

環境、Railsアプリケーションの作成はこちら。

l-chika.hatenablog.com

手順

やったこと

  • Timezone: アプリケーションとDB保存時の時間を日本時間にする
  • I18n:文言の日本語対応

変更前

$ ./bin/rails c
> helper.number_to_human(1234) 
=> "1.23 Thousand"

> Time.current
=> Tue, 24 Jan 2017 01:32:15 UTC +00:00

> ActiveRecord::Base.default_timezone
=> :utc

> MyApp::Application.config.active_record.default_timezone
=> nil

TimeZone

$ vim  config/application.rb
  class Application < Rails::Application
    config.time_zone = 'Tokyo'
    config.active_record.default_timezone = :local

    config.i18n.default_locale = :ja
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
  end

locale

$ vim Gemfile
gem 'rails-i18n', '~> 5.0.0'
$ bundle install --path=vendor/bundle/

確認

$ ./bin/rails c
> helper.number_to_human(1234) 
=> "1.23 千"
> Time.current
=> Tue, 24 Jan 2017 10:31:46 JST +09:00

> ActiveRecord::Base.default_timezone
=> :local

> MyApp::Application.config.active_record.default_timezone
=> :local

ちなみに

この設定をしても、ActiveRecordの保存等がJSTにならない場合は、OSのタイムゾーンUTCになっている可能性が高い。 その場合は、OSのTimeZoneをJSTに変更する。

Ubuntu_14.04の場合はこちらを参考。

www.server-world.info

関連する書籍

はじめての「Ruby on Rails」5 (I・O BOOKS)

はじめての「Ruby on Rails」5 (I・O BOOKS)