Wo finde ich eine Liste der Datentypen, die in Ruby on Rails 4 verwendet werden können? Sowie
text
string
integer
float
date
Ich lerne immer wieder über neue und würde gerne eine Liste haben, auf die ich mich leicht beziehen kann.
ruby-on-rails
ruby
ruby-on-rails-4
rails-activerecord
Nicolas Raoul
quelle
quelle
Antworten:
Hier sind alle Rails 4-Datentypen (ActiveRecord-Migration):
:binary
:boolean
:date
:datetime
:decimal
:float
:integer
:bigint
:primary_key
:references
:string
:text
:time
:timestamp
Quelle: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
Dies sind die gleichen wie bei Rails 3 .
Wenn Sie PostgreSQL verwenden, können Sie auch Folgendes nutzen:
:hstore
:json
:jsonb
:array
:cidr_address
:ip_address
:mac_address
Sie werden als Zeichenfolgen gespeichert, wenn Sie Ihre App mit einer Nicht-PostgreSQL-Datenbank ausführen.
Bearbeiten, 19.09.2016:
In Rails 4 gibt es viel mehr postgres-spezifische Datentypen und in Rails 5 noch mehr .
quelle
text
Datentyp zu haben . Trotzdem können Schienen damit umgehen? Was ist im Hintergrund los?nil
in einer Nicht-Postgres-Datenbank. Sie können den Typ in der Konsole mit überprüfenModel.columns_hash["column_name"].type
. Dies sind nur Dinge, auf die ich bei der Verwendung gestoßen bin: json-Spaltentyp, ich kann mich irren und dies kann nicht jedem passieren, aber ich dachte, ich würde zukünftige Leser informieren, falls sie Probleme haben. Unabhängig davon +1 für diese Antwort, weil es mir wirklich geholfen hat.Möglicherweise ist es auch hilfreich, allgemein zu wissen, wofür diese Datentypen verwendet werden:
:string
- ist für kleine Datentypen wie einen Titel. ( Sollten Sie Zeichenfolge oder Text wählen? ):text
- steht für längere Textdaten, z. B. einen Informationsabschnitt:binary
- dient zum Speichern von Daten wie Bildern, Audio oder Filmen.:boolean
- dient zum Speichern von wahren oder falschen Werten.:date
- Nur das Datum speichern:datetime
- Speichern Sie Datum und Uhrzeit in einer Spalte.:time
- ist nur für die Zeit:timestamp
- zum Speichern von Datum und Uhrzeit in einer Spalte. ( Was ist der Unterschied zwischen Datum und Uhrzeit? ):decimal
- steht für Dezimalstellen ( Beispiel für die Verwendung von Dezimalstellen ).:float
- steht für Dezimalstellen. ( Was ist der Unterschied zwischen Dezimal und Float? ):integer
- ist für ganze Zahlen.:primary_key
- eindeutiger Schlüssel, der jede Zeile in einer Tabelle eindeutig identifizieren kannEs gibt auch Referenzen, die zum Erstellen von Assoziationen verwendet werden. Aber ich bin nicht sicher , dies ist ein tatsächlicher Datentyp .
Neue Rails 4-Datentypen in PostgreSQL verfügbar:
:hstore
- Speichern von Schlüssel / Wert-Paaren in einem einzelnen Wert ( erfahren Sie mehr über diesen neuen Datentyp ):array
- eine Anordnung von Zahlen oder Zeichenfolgen in einer bestimmten Zeile ( erfahren Sie mehr darüber und sehen Sie sich Beispiele an ):cidr_address
- Wird für IPv4- oder IPv6-Hostadressen verwendet:inet_address
- Wird für IPv4- oder IPv6-Hostadressen verwendet, wie cidr_address, akzeptiert jedoch auch Werte mit Bits ungleich Null rechts von der Netzmaske:mac_address
- wird für MAC-Hostadressen verwendetErfahren Sie hier und hier mehr über die Adressdatentypen .
Hier ist auch der offizielle Leitfaden zu Migrationen: http://edgeguides.rubyonrails.org/migrations.html
quelle
uuid
Typ, der als normales Feld wiet.uuid :name...
oder als Primärschlüssel wiecreate_table :users, id: :uuid do...
oder zB verwendet werden kannt.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
. Höhepunkte sindmoney
,json
,xml
,daterange
Es ist wichtig, nicht nur die Typen zu kennen, sondern auch die Zuordnung dieser Typen zu den Datenbanktypen:
Quelle hinzugefügt - Agile Webentwicklung mit Rails 4
quelle
NATIVE_DATABASE_TYPES
nach dem AdapterSie können jederzeit auf diese Liste zugreifen (auch wenn Sie keinen Internetzugang haben) über:
quelle
Rails4 hat einige zusätzliche Datentypen für Postgres.
In Railscast Nr. 400 werden beispielsweise zwei davon genannt:
Außerdem können Sie auch cidr, inet und macaddr verwenden. Für mehr Informationen:
https://blog.engineyard.com/2013/new-in-rails-4
quelle