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ść.
ruby-on-rails
ruby
ruby-on-rails-4
rails-activerecord
Nicolas Raoul
źródło
źródło
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.
źródło
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
źródło
uuid
typ, który może być użyty jako zwykłe pole jakt.uuid :name...
lub jako klucz podstawowy jakcreate_table :users, id: :uuid do...
lub npt.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
. Najważniejsze tomoney
,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
źródło
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:
źródło
Rails4 ma dodane typy danych dla Postgres.
Na przykład railscast # 400 wymienia dwa z nich:
Poza tym możesz także używać cidr, inet i macaddr. Po więcej informacji:
https://blog.engineyard.com/2013/new-in-rails-4
źródło