Я использую Rails 4.1 и Postgresql (с жемчужиной PG) в качестве моей базы данных. У меня очень много ассоциаций от компаний до провинций с таблицей объединений, называемой регионами. Теперь, очевидно, таблица регионов не имеет первичной причины, по которой я использовал {: id => false}. Но когда я пытаюсь использовать зависящий от уничтожения или просто просто вызываю уничтожить объект области, я сам получаю эту ошибку:
ERROR: zero-length delimited identifier at or near """"
LINE 1: DELETE FROM "regions" WHERE "regions"."" = $1
Я знаю, что проблема вызвана отсутствием первичного ключа для таблицы регионов. И как ни странно, если я добавлю первичный ключ обратно в таблицу, то разрушение будет прекрасным и без ошибок. Однако, если я удалю первичный ключ из таблицы, ошибка вернется. Я знаю, что это имеет какое-то отношение к postgres, но я не знаю, как это решить, не добавляя столбец первичного ключа в таблицу моих регионов.
Вот фактический запрос
[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