以下のテーブル作成スクリプトを検討してください。
create_table :foo do |t|
t.datetime :starts_at, :null => false
end
デフォルト値を現在の時刻に設定することは可能ですか?
私は、以下に示す SQL 列定義に対して、DB に依存しない同等のものを Rails で見つけようとしています。
Oracle 構文
start_at DATE DEFAULT SYSDATE()
MySQL 構文
start_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
または
start_at DATETIME DEFAULT NOW()
ベストアンサー1
これは現在 Rails 5 でサポートされています。
移行のサンプルを次に示します。
class CreatePosts < ActiveRecord::Migration[5.0]
def change
create_table :posts do |t|
t.datetime :modified_at, default: -> { 'CURRENT_TIMESTAMP' }
t.timestamps
end
end
end
議論を参照参考:prathamesh-sonpatkiによる回答