提问



我在哪里可以找到可以在Ruby on Rails 4中使用的数据类型列表?




  • text

  • string

  • integer

  • float

  • date



我一直在学习新的东西,我希望有一个我可以轻易参考的清单。

最佳参考


以下是所有Rails 4(ActiveRecord迁移)数据类型:



  • :binary

  • :boolean

  • :date

  • :datetime

  • :decimal

  • :float

  • :integer

  • :bigint

  • :primary_key

  • :references

  • :string

  • :text

  • :time

  • :timestamp



来源:http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column

这些与Rails 3相同。[45]


如果你使用PostgreSQL,你也可以利用这些:



  • :hstore

  • :json

  • :jsonb

  • :array

  • :cidr_address

  • :ip_address

  • :mac_address



如果您使用not-PostgreSQL数据库运行应用程序,它们将存储为字符串。


编辑,2016年9月19日:


在Rails 4中有更多postgres特定的数据类型,在Rails 5中甚至更多。[47] [48]

其它参考1


您可能还会发现通常了解这些数据类型的用途很有用:



  • :string - 适用于小型数据类型,例如标题。 (你应该选择字符串还是文字?)

  • :text - 用于较长的文本数据,例如信息段落

  • :binary - 用于存储图像,音频或电影等数据。

  • :boolean - 用于存储真值或假值。

  • :date - 仅存储日期

  • :datetime - 将日期和时间存储到列中。

  • :time - 仅限时间

  • :timestamp - 用于将日期和时间存储到列中。(日期时间和时间戳之间有什么区别?)

  • :decimal - 用于小数(如何使用小数的示例)。

  • :float - 用于小数。 (小数和浮点数有什么区别?)

  • :integer - 是整数。

  • :primary_key - 唯一标识表中每一行的唯一键



还有一些用于创建关联的引用。但是,我不确定这是一个实际的数据类型。


PostgreSQL中提供的新Rails 4数据类型:



  • :hstore - 将键/值对存储在单个值中(了解有关此新数据类型的更多信息)

  • :array - 特定行中数字或字符串的排列(了解更多信息并查看示例)

  • :cidr_address - 用于IPv4或IPv6主机地址

  • :inet_address - 用于IPv4或IPv6主机地址,与cidr_address相同,但它也接受网络掩码右侧非零位的值

  • :mac_address - 用于MAC主机地址



在此处和此处了解有关地址数据类型的更多信息。 [54] [55] [56] [57]


另外,这里是关于迁移的官方指南:http://edgeguides.rubyonrails.org/migrations.html [58]

其它参考2


重要的是不仅要知道类型,还要知道这些类型到数据库类型的映射:











来源添加 - 使用Rails 4进行敏捷Web开发[59]

其它参考3


您可以通过以下方式随时访问此列表(即使您无法访问Internet):


rails generate model -h

其它参考4


Rails4为Postgres添加了一些数据类型。


例如,railscast#400命名其中两个:



  Rails 4支持Postgres中的本机数据类型,我们将在这里展示其中的两个,尽管支持更多:array和hstore。我们可以将数组存储在字符串类型的列中,并指定hstore的类型。



此外,您还可以使用cidr,inet和macaddr。了解更多信息:


https://blog.engineyard.com/2013/new-in-rails-4[60]