Rails是否创建了应该具有created_at和updated_at的表迁移?

时间:2014-12-14 19:49:35

标签: ruby-on-rails ruby-on-rails-4 activerecord rails-migrations

根据我的经验,Rails g migration创建表迁移始终会为表添加时间戳。但事情并没有发生:

rails g migration CreateFoo bar:references

class Foo < ActiveRecord::Migration
  def change
    create_table :foos do |t|
      t.references :bar, index: true
    end
  end
end

这是预期的行为吗? Rails 4中的这个改变了吗?

ActiveRecord 4.1.6

2 个答案:

答案 0 :(得分:4)

时间戳只能使用生成模型创建。

这是指南中的一个例子。

http://guides.rubyonrails.org/migrations.html

$ bin/rails generate migration CreateProducts name:string part_number:string

产生

class CreateProducts < ActiveRecord::Migration
  def change
    create_table :products do |t|
      t.string :name
      t.string :part_number
    end
  end
end

<强>达

您可以通过查看提供的代码示例来提出建议。

另见:

rails g migration --help
rails g model --help

你会看到时间戳只能通过“g model”自动提供(实际上你可以为模型禁用它)

答案 1 :(得分:1)

使用Rails生成模型函数来创建模型,迁移和测试/规范:

rails g model CreateFoo bar:references

这将在您的迁移中添加t.timestamps