Я создаю веб-приложение Ruby on Rails и хочу иметь возможность удалять записи из таблицы countries. Когда я пытаюсь удалить какие-либо записи из таблицы countries из любого места в моем приложении, я получаю сообщение об ошибке:
SQLite3::SQLException: no such column: countries.country_id: SELECT >"countries".* FROM "countries" WHERE "countries"."country_id" = ?
Я не уверен, почему это происходит.
Я использую ActiveAdmin. У меня в приложении есть еще 2 таблицы: cities и sites. Существует связь между моделями, которые я включил в свою маршрутизацию:
resources :countries do
resources :cities do
resources :sites
end
end
resources :countries
resources :cities
resources :sites
Где City модель принадлежит Country и Country имеет много cities и где Site принадлежит City и City имеет много sites.
Вы правы, но я не определил это.





Я узнал решение своей проблемы. В модели Country у меня была опечатка, которая гласила
class Country < ApplicationRecord
has_many :countries, dependent: :destroy
validates :code, presence: true, uniqueness: true
end
Вот почему я получал ошибку исключения Sqlite3; потому что база данных предположила, что у меня должен быть country_id, поскольку у country много countries, я думаю. В любом случае, я изменил countries выше на cities, и это сработало как по маслу. Спасибо за помощь, СОС.
Сообщение об ошибке говорит вам, почему именно это происходит
no such column: countries.country_id