如果我不使用annotate
宝石,我如何查看表格列上的约束?我可以使用rails控制台查看哪些列在哪些表上,但我看不到像not null
这样的约束。
答案 0 :(得分:3)
任何ActiveRecord子类都有columns
方法,它返回有关基础表的列的所有元数据:
User.columns.find { |c| c.name == 'email' }.null
# => false
答案 1 :(得分:2)
如果没有annotate
,从vim /文本编辑器最简单的方法就是查看db/schema.rb
文件。此文件是所有迁移的高潮,表示数据库模式的当前状态。
它看起来与迁移文件非常相似。这是一个例子:
ActiveRecord::Schema.define(:version => 11) do
create_table "users", :force => true do |t|
t.string "email", default: "", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "remember_token"
t.datetime "remember_token_expires_at"
end
end
正如您在email
列中看到的那样,它可能不为空(not null
)。对于字符限制等,其他一些参数可能看起来像limit: 20
等。More column definitions are provided in the docs