ERRO: identificador delimitado de comprimento zero em ou perto de “” “” LINHA 1: EXCLUIR DE “regiões” ONDE “regiões”. “” = $ 1
Estou usando o Rails 4.1 e o Postgresql (com PG gem) como meu banco de dados. Eu tenho uma associação de muitos a muitos de empresas a províncias com uma tabela de junção chamada regiões. Agora, obviamente, a tabela de regiões não possui chave primária, porque usei {: id => false}. Mas quando tento usar o destroy de destruição ou simplesmente chamando destroy no objeto de região, eu recebo este erro:
ERROR: zero-length delimited identifier at or near """"
LINE 1: DELETE FROM "regions" WHERE "regions"."" = $1
Eu sei que o problema é causado devido à falta de uma chave primária para a tabela de regiões. E, estranhamente, se eu adicionar a chave primária de volta à tabela, destruir funcionará bem e sem erros. No entanto, se eu remover a chave primária da tabela, o erro retornará. Eu sei que isso tem algo a ver com o postgres, mas não tenho idéia de como resolver isso sem precisar adicionar uma coluna de chave primária à minha tabela de regiões.
Aqui está a consulta real
[DEBUG] [AdminUser Load (0.4ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 1 ORDER BY "admin_users"."id" ASC LIMIT 1] (pid:29655)
[DEBUG] [Province Load (0.2ms) SELECT "provinces".* FROM "provinces" WHERE "provinces"."id" = $1 LIMIT 1 [["id", 5]]] (pid:29655)
[DEBUG] [ (0.1ms) BEGIN] (pid:29655)
[DEBUG] [Region Load (0.3ms) SELECT "regions".* FROM "regions" WHERE "regions"."province_id" = $1 [["province_id", 5]]] (pid:29655)
[ERROR] [PG::SyntaxError: ERROR: zero-length delimited identifier at or near """"
LINE 1: DELETE FROM "regions" WHERE "regions"."" = $1