设置:null => false作为创建表迁移时的默认行为

Ere*_*CAY 2 migration ruby-on-rails

我有一个迁移用于创建一个包含大约15个字段的表,并且所有字段都不应为null.我想知道是否有任何技巧可以立即做到这一点,而不是:null => false为每一个字段声明.

Emi*_*ily 6

实际上,你可以使用with_options.它最常用于路由和设置验证,但它实际上适用于将选项哈希作为最后一个参数的任何方法.所以,像:

create_table :foo do |t| 
  t.with_options :null => false do |opt|
    opt.string :column_name
    opt.string :other_column_name
  end
end
Run Code Online (Sandbox Code Playgroud)

这是Object#with_options文档.