Active Recordで日付カラムの別名を設定


Ruby on Railsのモデル(Active Record)でデフォルトの日付カラムではなく、別名の日付カラムを設定したい場合の記述方法です。別のフレームワークからRailsに移植するときによく使います。

🚜 特定のモデルだけ別名を指定したい

特定のモデルだけcreated_atupdated_atを変更したい場合はこちら。

class Person < ActiveRecord::Base
private

def timestamp_attributes_for_update
super + [:updated_date]
end

def timestamp_attributes_for_create
super + [:created_date]
end
end

😀 すべてのモデルに対して適用

すべてのモデルでcreated_atupdated_atを変更したい場合はこちら。

module ActiveRecord
module Timestamp
def timestamp_attributes_for_update
[:updated_at, :updated_date]
end

def timestamp_attributes_for_create
[:created_at, :created_date]
end
end
end

🍄 補足:DateTimeオブジェクトのタイムゾーンの変更

DateTimeオブジェクトのタイムゾーンを一時的に変更したい(統一させたい)場合に使えるメソッドin_time_zoneの紹介です。

Time.current.utc
#=> 2017-08-13 06:49:23 UTC

# UTC => JSTへの変更
Time.current.utc.in_time_zone('Tokyo')
#=> Sun, 13 Aug 2017 15:50:54 JST +09:00

🐯 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍