migrationファイルでdefault値を指定することはできないようでした。そこで、
hoges_controller.rbにて
class Hoge < ActiveRecord::Base
Time.zone = 'Tokyo' #application_controller.rbに記述がベター
validates_presence_of :time_shop_closed
before_validation(on: :create) do
#:time_shop_closedカラムの初期値に今日の18:00を与える
self.time_shop_closed =Time.local(Date.today.year,Date.today.month,Date.today.day, 18, 0, 0)
end
#以下省略
before_createだとvalidationエラー(Time shop closed can't be blank)が出て困りました。before_validation(on: :create)が正解。ハマったので記録しました。
ローカル時間に変更
参考: Rails3系のtimezoneの扱いに関するメモ
railsの場合にデフォルトの設定だとタイムゾーンがUTCになっています。
application_controller.rbなどで以下を記述
Time.zone = 'Tokyo'
config/application.rbにて以下を追記
config.active_record.default_timezone = :local
ほぼ参考の丸写しです。