Gdzie mogę znaleźć listę typów danych, których można użyć w Ruby on Rails 4? Jak na przykład
text
string
integer
float
date
Ciągle uczę się o nowych i chciałbym mieć listę, do której mógłbym łatwo się odnieść.
Gdzie mogę znaleźć listę typów danych, których można użyć w Ruby on Rails 4? Jak na przykład
text
string
integer
float
date
Ciągle uczę się o nowych i chciałbym mieć listę, do której mógłbym łatwo się odnieść.
Odpowiedzi:
Oto wszystkie typy danych Rails 4 (migracja ActiveRecord):
:binary
:boolean
:date
:datetime
:decimal
:float
:integer
:bigint
:primary_key
:references
:string
:text
:time
:timestamp
Źródło: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
Są takie same jak w przypadku Rails 3 .
Jeśli korzystasz z PostgreSQL, możesz również skorzystać z tych:
:hstore
:json
:jsonb
:array
:cidr_address
:ip_address
:mac_address
Są one przechowywane jako ciągi, jeśli uruchomisz aplikację z bazą danych inną niż PostgreSQL.
Edycja, 2016-wrz-19:
Jest o wiele więcej Rails 4 specyficznych typów danych postgres, a nawet więcej w Rails 5.
text
typu danych. A jednak szyny nadal mogą to obsłużyć? Co dzieje się w tle?
nil
tekst w bazie danych innej niż postgres. Możesz sprawdzić typ w konsoli za pomocą Model.columns_hash["column_name"].type
. To tylko rzeczy, na które natknąłem się podczas używania: typ kolumny json, mogę się mylić i może to nie zdarzyć się wszystkim, ale pomyślałem, że dam przyszłym czytelnikom informacje na wypadek problemów. Niezależnie od tego +1 za tę odpowiedź, ponieważ naprawdę mi pomogła.
Przydatna może być również ogólna wiedza o tym, do czego służą te typy danych:
:string
- dotyczy małych typów danych, takich jak tytuł. ( Czy powinieneś wybrać ciąg znaków czy tekst? ):text
- dotyczy dłuższych fragmentów danych tekstowych, takich jak akapit informacji:binary
- służy do przechowywania danych, takich jak obrazy, audio lub filmy.:boolean
- służy do przechowywania prawdziwych lub fałszywych wartości.:date
- przechowuj tylko datę:datetime
- zapisz datę i godzinę w kolumnie. :time
- jest tylko na czas:timestamp
- do przechowywania daty i godziny w kolumnie ( jaka jest różnica między datą a datownikiem? ):decimal
- dotyczy miejsc po przecinku ( przykład użycia miejsc po przecinku ).:float
- dotyczy miejsc po przecinku. ( Jaka jest różnica między liczbą dziesiętną a liczbą zmiennoprzecinkową? ):integer
- dotyczy liczb całkowitych.:primary_key
- unikalny klucz, który może jednoznacznie zidentyfikować każdy wiersz w tabeliIstnieją również odniesienia używane do tworzenia powiązań. Ale nie jestem pewien, czy jest to rzeczywisty typ danych .
Nowe typy danych Rails 4 dostępne w PostgreSQL:
:hstore
- przechowywanie par klucz / wartość w obrębie jednej wartości ( dowiedz się więcej o tym nowym typie danych ):array
- układ liczb lub ciągów w określonym rzędzie ( dowiedz się więcej na ten temat i zobacz przykłady ):cidr_address
- używany dla adresów hostów IPv4 lub IPv6:inet_address
- używany dla adresów hostów IPv4 lub IPv6, taki sam jak adres_cidr, ale akceptuje również wartości z niezerowymi bitami po prawej stronie maski sieci:mac_address
- używany dla adresów hostów MACDowiedz się więcej o typach danych adresów tutaj i tutaj .
Oto oficjalny przewodnik na temat migracji: http://edgeguides.rubyonrails.org/migrations.html
uuid
typ, który może być użyty jako zwykłe pole jak t.uuid :name...
lub jako klucz podstawowy jak create_table :users, id: :uuid do...
lub npt.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
. Najważniejsze to money
, json
, xml
,daterange
Ważne jest, aby znać nie tylko typy, ale także mapowanie tych typów na typy baz danych:
Dodano źródło - Agile Web Development with Rails 4
NATIVE_DATABASE_TYPES
czy potrzebujesz adaptera - github.com/rails/rails/blob/master/activerecord/lib/…
Możesz uzyskać dostęp do tej listy w dowolnym momencie (nawet jeśli nie masz dostępu do Internetu) poprzez:
rails generate model -h
Rails4 ma dodane typy danych dla Postgres.
Na przykład railscast # 400 wymienia dwa z nich:
Railsy 4 obsługują rodzime typy danych w Postgresie, a my pokażemy tutaj dwa z nich, chociaż obsługiwanych jest znacznie więcej: tablica i hstore. Możemy przechowywać tablice w kolumnie typu ciąg i określić typ dla hstore.
Poza tym możesz także używać cidr, inet i macaddr. Po więcej informacji: