Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ActiveRecord数据类型的文档页面在哪里?_Ruby On Rails_Rails Migrations - Fatal编程技术网

Ruby on rails ActiveRecord数据类型的文档页面在哪里?

Ruby on rails ActiveRecord数据类型的文档页面在哪里?,ruby-on-rails,rails-migrations,Ruby On Rails,Rails Migrations,我找不到包含所有数据类型列表的活动记录文档页面 有人能帮我吗?如果您正在谈论迁移的类型,例如字符串、整数、日期时间等,那么您需要的是方法。(Rails 5编辑:另请参见连接..) 截至本次更新,标准类型为: :主键 :字符串 :文本 :整数 :bigint :浮动 :十进制 :数字 :日期时间 :时间 :日期 :二进制 :布尔值 :decimal的实现对于每个数据库都是不同的,所以如果可能的话,我会避免它。只要数据库支持,您可以使用不在此列表中的类型(例如,MySQL中的:polygon),

我找不到包含所有数据类型列表的活动记录文档页面


有人能帮我吗?

如果您正在谈论迁移的类型,例如字符串、整数、日期时间等,那么您需要的是方法。(Rails 5编辑:另请参见连接..)

截至本次更新,标准类型为:

  • :主键
  • :字符串
  • :文本
  • :整数
  • :bigint
  • :浮动
  • :十进制
  • :数字
  • :日期时间
  • :时间
  • :日期
  • :二进制
  • :布尔值

:decimal
的实现对于每个数据库都是不同的,所以如果可能的话,我会避免它。只要数据库支持,您可以使用不在此列表中的类型(例如,MySQL中的
:polygon
),但这不会与数据库无关,也应该避免

您还可以在源文件中看到ActiveRecord数据类型。每个DBMS适配器都包含自己的映射。例如,在MySQL示例中,请查看以下文件:或通过以下代码行获取当前DBMS适配器的文件:

ActiveRecord::Base.connection.native_database_types.keys

以下是数据库适配器的默认类型映射:

注意:这是基于日期为2015年2月13日的Rails源代码(Rails (4.2)

万一有人想知道这些数据类型是如何映射到您正在使用的数据库中的

您可以在github轻松获取rails源代码

例如

Rails数据类型到mysql数据类型的映射

发现于

如果有人想要postgreSQL,那就来吧

NATIVE_DATABASE_TYPES = {
        primary_key: "serial primary key",
        bigserial: "bigserial",
        string:      { name: "character varying" },
        text:        { name: "text" },
        integer:     { name: "integer" },
        float:       { name: "float" },
        decimal:     { name: "decimal" },
        datetime:    { name: "timestamp" },
        time:        { name: "time" },
        date:        { name: "date" },
        daterange:   { name: "daterange" },
        numrange:    { name: "numrange" },
        tsrange:     { name: "tsrange" },
        tstzrange:   { name: "tstzrange" },
        int4range:   { name: "int4range" },
        int8range:   { name: "int8range" },
        binary:      { name: "bytea" },
        boolean:     { name: "boolean" },
        bigint:      { name: "bigint" },
        xml:         { name: "xml" },
        tsvector:    { name: "tsvector" },
        hstore:      { name: "hstore" },
        inet:        { name: "inet" },
        cidr:        { name: "cidr" },
        macaddr:     { name: "macaddr" },
        uuid:        { name: "uuid" },
        json:        { name: "json" },
        jsonb:       { name: "jsonb" },
        ltree:       { name: "ltree" },
        citext:      { name: "citext" },
        point:       { name: "point" },
        bit:         { name: "bit" },
        bit_varying: { name: "bit varying" },
        money:       { name: "money" },
      }

只是一个选择的问题,或者是喜欢ApiDock而不是官方文档的任何特殊原因?@swand当然是相同的内容,但是导航更好。而且,能够看到不同Rails版本中发生了多大变化的能力是非常宝贵的。@Swan和用户创建的注释在文档本身没有多大帮助的领域也非常有用。请注意,这些注释在Rails 4中保持不变。
:timestamp
似乎不再在列表中,并被视为
:datetime
(在
db/schema.rb
中显示为
:datetime
)。或用于
:datetime
NATIVE_DATABASE_TYPES = {
        primary_key: "serial primary key",
        bigserial: "bigserial",
        string:      { name: "character varying" },
        text:        { name: "text" },
        integer:     { name: "integer" },
        float:       { name: "float" },
        decimal:     { name: "decimal" },
        datetime:    { name: "timestamp" },
        time:        { name: "time" },
        date:        { name: "date" },
        daterange:   { name: "daterange" },
        numrange:    { name: "numrange" },
        tsrange:     { name: "tsrange" },
        tstzrange:   { name: "tstzrange" },
        int4range:   { name: "int4range" },
        int8range:   { name: "int8range" },
        binary:      { name: "bytea" },
        boolean:     { name: "boolean" },
        bigint:      { name: "bigint" },
        xml:         { name: "xml" },
        tsvector:    { name: "tsvector" },
        hstore:      { name: "hstore" },
        inet:        { name: "inet" },
        cidr:        { name: "cidr" },
        macaddr:     { name: "macaddr" },
        uuid:        { name: "uuid" },
        json:        { name: "json" },
        jsonb:       { name: "jsonb" },
        ltree:       { name: "ltree" },
        citext:      { name: "citext" },
        point:       { name: "point" },
        bit:         { name: "bit" },
        bit_varying: { name: "bit varying" },
        money:       { name: "money" },
      }