Rails - 如何为模型添加时间戳?

时间:2011-11-24 19:55:44

标签: mysql ruby-on-rails ruby time

我有一个包含以下列的模型(和表):idnamecity。在此表中有数据,我想在此表中添加列created_atupdated_at - 任何人都可以给我一个帮助,怎么做?我的意思是 - 如果我创建一个模型,那么这两个列是自动创建的,并且当我保存一些东西时,总是自动插入时间信息。

现在可以使用自动插入时间数据添加这两列吗?

3 个答案:

答案 0 :(得分:13)

这应该允许您将时间戳列添加到现有模型

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

答案 1 :(得分:12)

应该注意的是,虽然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

答案 2 :(得分:7)

add_timestamps是用于此目的的专用方法:

class AddTimestampsToUsers < ActiveRecord::Migration
  def change
    add_timestamps :users
  end
end