我有一个存在模型(和表)与这些列: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,他可能已将他们从最初的迁移中移除 –