LoginSignup
21
21

More than 5 years have passed since last update.

Rails初心者がもっと早く知りたかったこと

Last updated at Posted at 2017-05-21

スペック

・現PHPエンジニア(1年弱)
・Railsエンジニア転向のため、TechAcademyのRails講座を1ヶ月受講
・現在Railsで個人開発中
・個人開発でわからないことが続出、調べながら何とか進めています。

タイムゾーン設定

APIを叩いて外部サービスの時刻を取得するのだが、日本のタイムゾーン(JST)ではなく、UTC(協定世界時)で取得するので、困った。
結論として、config/application.rbにタイムゾーンの設定を書く。

config/application.rb
require_relative 'boot'

require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "action_cable/engine"
require "sprockets/railtie"
Bundler.require(*Rails.groups)

module Typetalks
  class Application < Rails::Application
    config.time_zone = 'Tokyo' # <= タイムゾーンを東京にする!!
  end
end

config.time_zone = 'Tokyo'と書くことで、RailsアプリケーションのタイムゾーンがTokyoになる。

UTC => JSTに変換するときは、in_time_zoneメソッドまたはzoneメソッドを使う。

irb(main):018:0> Time.now
=> 2017-10-18 03:21:01 +0000
irb(main):020:0> Time.now.in_time_zone
=> Wed, 18 Oct 2017 12:21:23 JST +09:00
irb(main):021:0> Time.zone.now        
=> Wed, 18 Oct 2017 12:21:29 JST +09:00

DBの初期化

開発環境でDBを初期化してやり直したい時がある。
そういうときは以下のコマンドを実行する。

$ rails db:reset
  1. 全てのテーブルを drop
  2. "db/schema.rb" を元にテーブルを再作成

ケースによってはmigrateファイルからテーブル作成を行いたい場合もあるだろう。
そのような場合は下記のコマンドを実行する。

$ rails db:migrate:reset
  1. 全てのテーブルを drop
  2. "db/migrate/" 以下の全ての migration を実行してテーブルを再作成

requireするライブラリファイルの記述箇所

最初はcontrollerやmodelの先頭に書いていたが、何回も同じことを書くのは面倒なので、
config/initializers/stdlibs.rbで一括管理する。

config/initializers/stdlibs.rb
require 'net/https'
require 'uri'
require 'json'
require 'time'

参考資料

RailsでDBをリセットして最初からつくり直す [俺の備忘録]

21
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
21