PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Hindari kesalahan PG::InvalidTextRepresentation saat menggunakan Postgres UUID di Rails

Anda dapat menambahkan batasan perutean ke beberapa rute sekaligus melalui constraints() do ... end .

Saya akhirnya melakukan ini dan menetapkan batasan global pada semua :id params untuk mencocokkannya dengan regexp UUID:

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

Dengan cara ini, /posts/123 atau /posts/foobar tidak lagi cocok dengan /posts/:id dan 404 sebelum menjalankan tindakan pengontrol, sehingga menghindari kesalahan jenis PG.

Semua model saya akan menggunakan UUID untuk ID mereka jadi ini bersih dan KERING. Jika saya memiliki beberapa model dengan ID bilangan bulat juga, itu akan menjadi sedikit kurang bersih.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batas waktu koneksi PostgreSQL

  2. Indeks untuk menemukan elemen dalam array JSON

  3. Apa urutan catatan dalam tabel dengan kunci primer komposit?

  4. Memanggil fungsi yang ditentukan pengguna yang terletak di postgres.c di postgreSQL menggunakan GUI yang ditentukan oleh netbeans

  5. Pilih dari SUM() dari beberapa kolom dan gabung di postgreSQL