PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Избягвайте грешка PG::InvalidTextRepresentation, когато използвате Postgres UUID в Rails

Можете да добавите ограничение за маршрутизиране към множество маршрути наведнъж чрез constraints() do ... end .

В крайна сметка направих това и зададох глобално ограничение за всички :id параметри, за да го съпоставите с 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

По този начин /posts/123 или /posts/foobar вече не съвпадат с /posts/:id и 404, преди изобщо да извикат действието на контролера, като по този начин се избягва грешката тип PG.

Всички мои модели ще използват UUID за техните идентификатори, така че това е чисто и СУХО. Ако имах някои модели и с целочислени идентификатори, щеше да е малко по-малко чисто.



  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 9.1

  2. Какво е решение на множество резултати, върнати от заявката

  3. Разбиране на системните колони в PostgreSQL

  4. Динамично изпълнение на заявки в PL/pgSQL

  5. postgres заявката с IN е много бавна