元記事は自分がQiitaであげた記事
Rails初心者がもっと早く知りたかったこと
スペック
・現PHPエンジニア(1年弱)
・Railsエンジニア転向のため、TechAcademyのRails講座を1ヶ月受講
・現在Railsで個人開発中
・個人開発でわからないことが続出、調べながら何とか進めています。
タイムゾーン設定
APIを叩いて外部サービスの時刻を取得するのだが、日本のタイムゾーン(JST)ではなく、UTC(協定世界時)で取得するので、困った。 結論として、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
UTC => JSTに変換するときは、下記のよう"in_time_zone"関数を使う。
date = "2017-05-18T04:07:54Z" p data #2017-05-18T04:07:54Z p data.in_time_zone #Thu, 18 May 2017 13:07:54 JST +09:00
DBの初期化
開発環境でDBを初期化してやり直したい時がある。 そういうときは以下のコマンドを実行する。
$ rails db:reset
- 全てのテーブルを drop
- "db/schema.rb" を元にテーブルを再作成
ケースによってはmigrateファイルからテーブル作成を行いたい場合もあるだろう。 そのような場合は下記のコマンドを実行する。
$rails db:migrate:reset
- 全てのテーブルを drop
- "db/migrate/" 以下の全ての migration を実行してテーブルを再作成
requireするライブラリファイルの記述箇所
最初はcontrollerやmodelの先頭に書いていたが、何回も同じことを書くのは面倒なので、 config/initializers/stdlibs.rbで一括管理する。
require 'net/https' require 'uri' require 'json' require 'time'