Где я могу найти список типов данных, которые можно использовать в Ruby on Rails 4? Такие как
textstringintegerfloatdate
Я продолжаю узнавать о новых, и я хотел бы иметь список, к которому я мог бы легко сослаться.
Где я могу найти список типов данных, которые можно использовать в 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. За дополнительной информацией: