PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tránh lỗi PG ::InvalidTextRepresentation khi sử dụng UUID Postgres trong Rails

Bạn có thể thêm một ràng buộc định tuyến cho nhiều tuyến cùng một lúc thông qua constraints() do ... end .

Tôi đã kết thúc việc này và thiết lập một ràng buộc chung cho tất cả :id tham số để khớp nó với một UUID regexp:

MyApp::Application.routes.draw do
  constraints(id: /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i) do

    # my routes here

  end
end

Bằng cách này, / posts / 123 hoặc / posts / foobar không còn khớp với / posts /:id và 404 trước khi gọi hành động controller, do đó tránh được lỗi kiểu PG.

Tất cả các mô hình của tôi sẽ sử dụng UUID cho ID của họ để điều này sạch sẽ và KHÔ. Nếu tôi cũng có một số mô hình có ID số nguyên, nó sẽ kém gọn gàng hơn một chút.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres, trùng lặp chỉ mục duy nhất

  2. Sử dụng sao băng với postgresql

  3. PostgreSQL pg_ctl đăng ký lỗi trong Windows 7

  4. Làm cách nào để thêm khóa vào giá trị mảng JSON?

  5. Không thể xác định kiểu đa hình vì đầu vào có kiểu không xác định