我有一個存在模型(和表)與這些列:id
,name
,city
。在這張表是數據,我想這張表添加列created_at
和updated_at
- 任何人都可以給我一個幫助,如何做到這一點?我的意思是 - 如果我創建了一個模型,所以這兩列是自動創建的,並且當我保存某些內容時,時間信息總是自動插入。Rails - 如何將時間戳添加到模型?
現在可以添加這兩列與自動插入時間數據?
我有一個存在模型(和表)與這些列:id
,name
,city
。在這張表是數據,我想這張表添加列created_at
和updated_at
- 任何人都可以給我一個幫助,如何做到這一點?我的意思是 - 如果我創建了一個模型,所以這兩列是自動創建的,並且當我保存某些內容時,時間信息總是自動插入。Rails - 如何將時間戳添加到模型?
現在可以添加這兩列與自動插入時間數據?
這應該讓你時間戳列添加到已經存在的模型
rails generate migration add_timestamps_to_users
這會爲你創建一個遷移文件。打開它,並進行必要的修改
class AddTimestampsToUsers < ActiveRecord::Migration
# in my example i'm using `users` table; change this to match your table name
def change_table :users do |t|
t.timestamps
end
end
然後遷移數據庫
rake db:migrate
好的答案,它也很好的說明您要修改命令以匹配您正在修改的模型的名稱。 –
此解決方案不適用於包含數據的表,因爲新創建的列應具有默認值,「timestamps」語法不允許指定它們。 – Paul
Paul,您希望如何組成已有記錄的日期/時間值?我認爲'null'值對於在timestamp列存在之前創建的記錄就足夠了。 –
應當指出的是,雖然maček的答案是正確的核心,他不使用遷移正確的語法(忘記了「改變」方法)。
因此,這裏是他的回答與糾正語法:
這應該讓你時間戳列添加到已經存在的模型
rake generate migration add_timestamps_to_users
這將會爲您創建一個遷移文件。打開它,並進行必要的修改
class AddTimestampsToModel < ActiveRecord::Migration
# in my example i'm using `users` table; change this to match your table name
def change
change_table :users do |t|
t.timestamps
end
end
end
然後遷移數據庫
rake db:migrate
add_timestamps
是用於此目的的專用方法:
class AddTimestampsToUsers < ActiveRecord::Migration
def change
add_timestamps :users
end
end
所以,你有,你想現有的模型添加時間戳?你使用的是什麼版本的Rails? –
rails activerecord自動創建時間戳列,爲什麼要添加時間戳列? – megas
@megas,他可能已將他們從最初的遷移中移除 –