Tôi có thể tìm danh sách các loại dữ liệu có thể được sử dụng trong Ruby on Rails 4 ở đâu? Nhu la
text
string
integer
float
date
Tôi tiếp tục tìm hiểu về những cái mới và tôi muốn có một danh sách mà tôi có thể dễ dàng tham khảo.
Tôi có thể tìm danh sách các loại dữ liệu có thể được sử dụng trong Ruby on Rails 4 ở đâu? Nhu la
text
string
integer
float
date
Tôi tiếp tục tìm hiểu về những cái mới và tôi muốn có một danh sách mà tôi có thể dễ dàng tham khảo.
Câu trả lời:
Dưới đây là tất cả các kiểu dữ liệu Rails 4 (ActiveRecord):
:binary
:boolean
:date
:datetime
:decimal
:float
:integer
:bigint
:primary_key
:references
:string
:text
:time
:timestamp
Nguồn: http://api.rubyonrails.org/groupes/ActiveRecord/ConnectionAd Chap / SchemaStatements.html # method-i-add_column
Đây là giống như với Rails 3 .
Nếu bạn sử dụng PostgreSQL, bạn cũng có thể tận dụng những điều sau:
:hstore
:json
:jsonb
:array
:cidr_address
:ip_address
:mac_address
Chúng được lưu trữ dưới dạng chuỗi nếu bạn chạy ứng dụng của mình với cơ sở dữ liệu không phải là PostgreQuery.
Chỉnh sửa, 2016-ngày 19 tháng 9:
Có rất nhiều kiểu dữ liệu cụ thể postgres trong Rails 4 và thậm chí nhiều hơn trong Rails 5.
text
kiểu dữ liệu. Tuy nhiên, đường ray vẫn có thể xử lý nó? Những gì diễn ra trong nền?
nil
trong cơ sở dữ liệu không phải là postgres. Bạn có thể kiểm tra các loại trong giao diện điều khiển với Model.columns_hash["column_name"].type
. Đây chỉ là những điều tôi gặp phải khi sử dụng: loại cột json, tôi có thể sai và điều này có thể không xảy ra với mọi người nhưng tôi nghĩ tôi sẽ cho độc giả tương lai biết trong trường hợp họ gặp rắc rối. Bất kể, +1 cho câu trả lời này vì nó thực sự giúp tôi.
Nhìn chung, bạn cũng có thể thấy hữu ích khi biết những loại dữ liệu này được sử dụng để làm gì:
:string
- dành cho các loại dữ liệu nhỏ như tiêu đề. ( Bạn nên chọn chuỗi hoặc văn bản? ):text
- dành cho các đoạn dữ liệu văn bản dài hơn, chẳng hạn như một đoạn thông tin:binary
- là để lưu trữ dữ liệu như hình ảnh, âm thanh hoặc phim.:boolean
- là để lưu trữ giá trị đúng hoặc sai.:date
- chỉ lưu trữ ngày:datetime
- lưu trữ ngày và thời gian vào một cột. :time
- chỉ dành cho thời gian:timestamp
- để lưu trữ ngày và thời gian vào một cột. ( Sự khác biệt giữa datetime và dấu thời gian là gì? ):decimal
- dành cho số thập phân ( ví dụ về cách sử dụng số thập phân ).:float
- là cho số thập phân. ( Sự khác biệt giữa số thập phân và số float là gì? ):integer
- là cho toàn bộ số.:primary_key
- khóa duy nhất có thể xác định duy nhất mỗi hàng trong một bảngNgoài ra còn có các tài liệu tham khảo được sử dụng để tạo ra các hiệp hội. Nhưng, tôi không chắc đây là loại dữ liệu thực tế .
Các kiểu dữ liệu Rails 4 mới có sẵn trong PostgreSQL:
:hstore
- lưu trữ các cặp khóa / giá trị trong một giá trị ( tìm hiểu thêm về loại dữ liệu mới này ):array
- sự sắp xếp các số hoặc chuỗi trong một hàng cụ thể ( tìm hiểu thêm về nó và xem các ví dụ ):cidr_address
- được sử dụng cho địa chỉ máy chủ IPv4 hoặc IPv6:inet_address
- được sử dụng cho các địa chỉ máy chủ IPv4 hoặc IPv6, giống như cidr_address nhưng nó cũng chấp nhận các giá trị với các bit khác không ở bên phải của netmask:mac_address
- được sử dụng cho các địa chỉ máy chủ MACTìm hiểu thêm về các kiểu dữ liệu địa chỉ ở đây và ở đây .
Ngoài ra, đây là hướng dẫn chính thức về di chuyển: http://edgeguides.rubyonrails.org/migations.html
uuid
loại có thể được sử dụng như trường bình thường như t.uuid :name...
hoặc khóa chính như create_table :users, id: :uuid do...
hoặc ví dụt.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
. Điểm nổi bật bao gồm money
, json
, xml
,daterange
Điều quan trọng là phải biết không chỉ các loại mà cả ánh xạ của các loại này vào các loại cơ sở dữ liệu:
Nguồn được thêm - Phát triển web Agile với Rails 4
NATIVE_DATABASE_TYPES
bộ điều hợp bạn cần - github.com/rails/rails/blob/master/activerecord/lib/
Rails4 có một số kiểu dữ liệu được thêm vào cho Postgres.
Ví dụ, railscast # 400 đặt tên cho hai trong số chúng:
Rails 4 có hỗ trợ cho các kiểu dữ liệu riêng trong Postgres và chúng tôi sẽ hiển thị hai trong số này ở đây, mặc dù có rất nhiều hỗ trợ: mảng và hstore. Chúng ta có thể lưu trữ các mảng trong một cột kiểu chuỗi và chỉ định loại cho hstore.
Bên cạnh đó, bạn cũng có thể sử dụng cidr, inet và macaddr. Để biết thêm thông tin: