当我使用 Rails 生成器生成模型时,它会自动添加时间戳字段,这也会导致架构中的这两个时间戳字段被创建。
我知道我可以编写一个迁移来删除这两个字段,但我想知道是否有一种方法实际上不生成它们,而不是创建一个迁移来删除它们?
当我使用 Rails 生成器生成模型时,它会自动添加时间戳字段,这也会导致架构中的这两个时间戳字段被创建。
我知道我可以编写一个迁移来删除这两个字段,但我想知道是否有一种方法实际上不生成它们,而不是创建一个迁移来删除它们?
在这种情况下,使用终端中的以下行获取特定生成器(型号)的帮助选项。
rails g model --help
您要用于防止添加字段 (created_at
和updated_at
) 的选项如下:
rails g model <model_name> <[[field_name(fn):field_type(ft)], [fn:ft]]> --timestamps=false
使用此创建的相应迁移将没有两个时间戳字段。
例子:
rails g model test --timestamps=false
invoke active_record
create db/migrate/20130225224757_create_tests.rb
create app/models/test.rb
使用 unixcat
命令检查文件以查看文件的输出确认时间戳未包含在迁移中。
cat db/migrate/*_create_tests.rb
class CreateTests < ActiveRecord::Migration
def change
create_table :tests do |t|
end
end
end