ОШИБКА: идентификатор с разделителями нулевой длины в «» «» ЛИНИЯ 1: УДАЛИТЬ ИЗ «регионов», ГДЕ «регионов». «» = $ 1
Я использую Rails 4.1 и Postgresql (с PG gem) в качестве базы данных. У меня очень много ассоциаций от компаний до провинций с объединенным столом, называемым регионами. Теперь у таблицы регионов нет первичного ключа, потому что я использовал {: 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