ОШИБКА: идентификатор с разделителями нулевой длины в «» «» ЛИНИЯ 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

Ответы на вопрос(3)

Ваш ответ на вопрос