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

use*_*621 5 ruby mysql time ruby-on-rails

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

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

mač*_*ček 13

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

rails generate migration add_timestamps_to_users
Run Code Online (Sandbox Code Playgroud)

这将为您创建一个迁移文件.打开它并进行必要的更改

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
Run Code Online (Sandbox Code Playgroud)

然后迁移您的数据库

rake db:migrate
Run Code Online (Sandbox Code Playgroud)


ext*_*erm 12

应该注意的是,虽然maček的答案是正确的,但他没有使用正确的语法进行迁移(忘记了"更改"方法).

所以这是他纠正语法的答案:

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

rake generate migration add_timestamps_to_users
Run Code Online (Sandbox Code Playgroud)

这将为您创建一个迁移文件.打开它并进行必要的更改

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
Run Code Online (Sandbox Code Playgroud)

然后迁移您的数据库

rake db:migrate
Run Code Online (Sandbox Code Playgroud)


Jan*_*imo 7

add_timestamps 是一种专门用于此目的的方法:

class AddTimestampsToUsers < ActiveRecord::Migration
  def change
    add_timestamps :users
  end
end
Run Code Online (Sandbox Code Playgroud)