我在哪里可以找到适用于Ruby on Rails 4的数据类型列表?
text
(文本)string
(字符串)integer
(整数)float
(浮点数)date
(日期)
我不停地学习新的数据类型,因此我很想有一个可以轻松参考的列表。
我在哪里可以找到适用于Ruby on Rails 4的数据类型列表?
text
(文本)string
(字符串)integer
(整数)float
(浮点数)date
(日期)我不停地学习新的数据类型,因此我很想有一个可以轻松参考的列表。
以下是所有Rails 4(ActiveRecord migration)数据类型:
:binary
:二进制数据:boolean
:布尔值,true/false:date
:日期:datetime
:日期和时间:decimal
:高精度小数:float
:浮点数:integer
:整数:bigint
:64位整数:primary_key
:主键:references
:外键引用:string
:短字符串,长度限制255字符:text
:长文本,长度不限:time
:时间:timestamp
:时间戳来源:http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
这些和Rails 3相同。
如果您使用PostgreSQL,还可以利用以下数据类型:
:hstore
:散列存储:json
:JSON格式存储:jsonb
:二进制JSON格式存储:array
:数组:cidr_address
:CIDR地址类型:ip_address
:IP地址类型:mac_address
:MAC地址类型如果使用非PostgreSQL数据库运行应用程序,则以上数据类型会以字符串形式存储。
更多PostgreSQL数据类型
nil
。您可以使用Model.columns_hash["column_name"].type
在控制台中检查类型。这些只是我在使用:json列类型时遇到的问题,我可能是错误的,这可能不会发生在每个人身上,但我想让未来的读者知道以防他们遇到麻烦。无论如何,对于这个答案的+1,因为它真的帮了我一个大忙。 - bpercevic:jsonb
。区别在于:“json数据类型存储输入文本的精确副本,处理函数必须在每次执行时重新解析;而jsonb数据以分解的二进制格式存储,由于增加了转换开销,因此输入速度略慢,但处理速度显着提高,因为不需要重新解析。 jsonb还支持索引,这可能是一个重要的优势。” http://www.postgresql.org/docs/9.4/static/datatype-json.html - Robbie Guilfoyle你可能也会发现了解这些数据类型的常规用途非常有用:
:string
- 用于存储小型数据类型,例如标题。(你应该选择字符串还是文本?):text
- 用于存储较长的文本数据,例如一段信息的段落。:binary
- 用于存储图像、音频或电影等数据。:boolean
- 用于存储真或假的值。:date
- 只存储日期。:datetime
- 将日期和时间存储到列中。:time
- 仅用于时间。:timestamp
- 用于将日期和时间存储到列中。(datetime 和 timestamp 之间有什么区别?):decimal
- 用于小数(使用小数的示例)。:float
- 用于小数。(decimal 和 float 之间的区别是什么?):integer
- 用于整数。:primary_key
- 独特的关键字,可唯一标识表中的每一行。还有用于创建关联的 references。但是,我不确定这是否是一种实际的数据类型。
PostgreSQL 中可用的新 Rails 4 数据类型:
:hstore
- 将键值对存储在单个值中 (了解更多关于这种新数据类型的信息):array
- 特定行中数字或字符串的排列方式 (了解更多信息并查看示例):cidr_address
- 用于IPv4或IPv6主机地址:inet_address
- 用于IPv4或IPv6主机地址,与cidr_address相同,但它还接受右侧掩码位为非零的值:mac_address
- 用于MAC主机地址在此处了解有关地址数据类型的更多信息和此处。
此外,这里是迁移的官方指南: http://edgeguides.rubyonrails.org/migrations.html
uuid
类型,可以像普通字段一样使用,例如 t.uuid :name...
,也可以用作主键,例如 create_table :users, id: :uuid do...
或者 t.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
。 - TNTActiveRecord :: ConnectionAdapters :: PostgreSQL :: ColumnMethods
的API文档中列出。其中包括money
,json
,xml
,daterange
等亮点。 - Eliot SykesNATIVE_DATABASE_TYPES
- https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L106 - gotqndate
和datetime
在Oracle数据库中都被映射为date
。当Active Record进行数据获取时,它是如何确定应该映射到哪种数据类型的呢? - Ali Akbardate
和datetime
在Oracle数据库中都被映射为date
类型。在获取数据时,Active Record是如何确定应该映射到哪种数据类型的呢? - undefined您随时都可以通过以下方式访问此列表(即使您没有互联网连接):
rails generate model -h