sql >> Databasteknik >  >> RDS >> PostgreSQL

Undvik PG::InvalidTextRepresentation-fel när du använder Postgres UUID i Rails

Du kan lägga till en ruttbegränsning till flera rutter samtidigt via constraints() do ... end .

Det slutade med att jag gjorde detta och satte en global begränsning på alla :id params för att matcha det med ett 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

På så sätt matchar /posts/123 eller /posts/foobar inte längre /posts/:id och 404 innan kontrollåtgärden anropas, vilket undviker PG-typfelet.

Alla mina modeller kommer att använda UUID för sina ID så detta är rent och torrt. Om jag hade några modeller med heltals-ID också, skulle det vara lite mindre rent.



  1. Hur kan jag ansluta flera SQL-tabeller med ID:n?

  2. Subtrahera veckor från ett datum i PostgreSQL

  3. laravel 5 inre koppling och grupp efter frågesyntaxfel

  4. jqGrid Act Strange Laddar om data efter infogning och uppdatering