Rails 4: список доступных типов данных

310

Где я могу найти список типов данных, которые можно использовать в Ruby on Rails 4? Например,

  • text
  • string
  • integer
  • float
  • date

Я продолжаю изучать новые, и мне бы хотелось иметь список, на который я мог бы легко сослаться.

  • 1
    @MarkThomas: не дубликат. Мой вопрос здесь специально для Rails 4.
Показать ещё 2 комментария
Теги:
rails-activerecord
ruby-on-rails-4

5 ответов

525
Лучший ответ

Вот все типы данных Rails 4 (ActiveRecord migration):

  • :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.

Если вы используете PostgreSQL, вы также можете воспользоваться следующими преимуществами:

  • :hstore
  • :json
  • :jsonb
  • :array
  • :cidr_address
  • :ip_address
  • :mac_address

Они сохраняются в виде строк, если вы запускаете приложение с базой данных не-PostgreSQL.

Изменить, 2016-сент.-19:

Там намного больше postgres специфические типы данных в Rails 4 и еще больше в Rails 5.

  • 1
    Я считаю, что это типы данных, которые поддерживаются во всех базах данных. Однако, как упоминает Питер де Риддер, есть некоторые типы данных, такие как hstore, которые все еще поддерживаются.
  • 0
    Вопрос: похоже, что документация postgres не имеет text типа данных. Тем не менее, рельсы все еще могут справиться с этим? Что происходит в фоновом режиме?
Показать ещё 5 комментариев
206

Вам также может быть полезно узнать, как эти типы данных используются для:

Там также ссылки, используемые для создания ассоциаций. Но Я не уверен, что это фактический тип данных.

Новые типы данных Rails 4, доступные в PostgreSQL:

  • :hstore - сохранение пар ключ/значение в пределах одного значения (узнать больше об этом новом типе данных)
  • :array - расположение чисел или строк в определенной строке (узнать больше об этом и увидеть примеры)
  • :cidr_address - используется для адресов хоста IPv4 или IPv6
  • :inet_address - используется для адресов хоста IPv4 или IPv6, так же как cidr_address, но также принимает значения с ненулевыми битами справа от сетевой маски
  • :mac_address - используется для адресов MAC-адреса

Подробнее о типах адресов здесь и здесь,

Кроме того, здесь официальное руководство по миграции: http://edgeguides.rubyonrails.org/migrations.html

  • 11
    Аплодисменты. +1 за тщательность и ожидание использования. Это менталитет UX прямо здесь.
  • 4
    Абсолютно потрясающий ответ - большое спасибо за это. Ссылки на статьи о разногласиях буквально забрали вопросы из моих уст.
Показать ещё 4 комментария
139

Важно также знать не только типы, но и сопоставление этих типов с типами баз данных:

Изображение 4157

Изображение 4158


Источник добавил - Agile Web Development с Rails 4

  • 1
    Мне было бы интересно увидеть тип JSON в этой таблице, если вы чувствуете, что до него
  • 2
    Вы всегда можете проверить NATIVE_DATABASE_TYPES для NATIVE_DATABASE_TYPES вам адаптера - github.com/rails/rails/blob/master/activerecord/lib/…
Показать ещё 2 комментария
62

Вы можете получить доступ к этому списку каждый раз, когда хотите (даже если у вас нет доступа к Интернету) через:

rails generate model -h
5

Rails4 имеет некоторые дополнительные типы данных для Postgres.

Например, railscast # 400 называет два из них:

Rails 4 поддерживает собственные типы данных в Postgres и хорошо показывает два из них здесь, хотя поддерживается гораздо больше: array и hstore. Мы можем хранить массивы в столбце типа string и указывать тип для hstore.

Кроме того, вы также можете использовать cidr, inet и macaddr. Для получения дополнительной информации:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню