ActiveRecord 数据类型的文档页面在哪里?
您还可以在源代码中看到ActiveRecord数据类型。每个DBMS适配器都包含其自己的映射。例如,在MySQL情况下,查看此文件:https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb#L148或使用以下代码行获取当前DBMS适配器的信息:
ActiveRecord::Base.connection.native_database_types.keys
如果你提到迁移的类型,例如字符串、整数、日期时间等,那么你需要使用ActiveRecord::ConnectionAdapters::TableDefinition,其中包含了column方法。(Rails 5修订版:还可以参考connection.add_column。)
截至此次更新,标准类型为:
:primary_key
:string
:text
:integer
:bigint
:float
:decimal
:numeric
:datetime
:time
:date
:binary
:boolean
:decimal
的实现在每个数据库中都不同,因此如果可能的话最好避免使用。你可以使用此列表中未列出的类型,只要它被你的数据库支持(例如MySQL中的:polygon
),但这将不是数据库无关的,应该避免使用。