Где я могу найти список типов данных, которые можно использовать в Ruby on Rails 4? Такие как
text
string
integer
float
date
Я продолжаю узнавать о новых, и я хотел бы иметь список, к которому я мог бы легко сослаться.
Где я могу найти список типов данных, которые можно использовать в 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 .
Если вы используете PostgreSQL, вы также можете воспользоваться этим:
:hstore
:json
:jsonb
:array
:cidr_address
:ip_address
:mac_address
Они хранятся в виде строк, если вы запускаете свое приложение с базой данных не-PostgreSQL.
Изменить, 2016-сентябрь-19:
Там в Rails 4 есть намного больше специфических типов данных postgres и даже больше в Rails 5.
text
типа данных. Тем не менее, рельсы все еще могут справиться с этим? Что происходит в фоновом режиме?
nil
в не-postgres базе данных. Вы можете проверить тип в консоли с помощью Model.columns_hash["column_name"].type
. Это просто то, с чем я столкнулся при использовании: тип столбца json, я могу ошибаться, и это может случиться не со всеми, но я подумал, что буду знать будущим читателям, если у них возникнут проблемы. Несмотря на это, +1 за этот ответ, потому что он действительно помог мне.
Вам также может быть полезно узнать, в целом, для чего используются эти типы данных:
:string
- для небольших типов данных, таких как заголовок. ( Вы должны выбрать строку или текст? ):text
- для более длинных частей текстовых данных, таких как параграф информации:binary
- для хранения данных, таких как изображения, аудио или фильмы.:boolean
- для хранения истинных или ложных значений.:date
- хранить только дату:datetime
- сохранить дату и время в столбце. :time
- только на время:timestamp
- для сохранения даты и времени в столбце. (В чем разница между датой и временем ? ):decimal
- для десятичных дробей ( пример использования десятичных дробей ).:float
- для десятичных. ( Какая разница между десятичной и плавающей? ):integer
- для целых чисел.:primary_key
- уникальный ключ, который может однозначно идентифицировать каждую строку в таблицеТам также ссылки, используемые для создания ассоциаций. Но я не уверен, что это фактический тип данных .
Новые типы данных Rails 4, доступные в PostgreSQL:
: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()'
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
. Основные моменты включают money
, json
, xml
,daterange
Важно знать не только типы, но и сопоставление этих типов с типами базы данных:
Добавлен источник - Agile Web Development с Rails 4
NATIVE_DATABASE_TYPES
для адаптера вам нужно - github.com/rails/rails/blob/master/activerecord/lib/...
Вы можете получить доступ к этому списку в любое время (даже если у вас нет доступа к Интернету) через:
rails generate model -h
В Rails4 есть несколько добавленных типов данных для Postgres.
Например, Railscast # 400 называет два из них:
В Rails 4 есть поддержка собственных типов данных в Postgres, и мы покажем два из них здесь, хотя поддерживается гораздо больше: массив и hstore. Мы можем хранить массивы в столбце строкового типа и указывать тип для hstore.
Кроме того, вы также можете использовать cidr, inet и macaddr. За дополнительной информацией: