我正在创建Ruby on Rails Web应用程序,并希望能够从countries
表中删除记录。当我尝试从应用程序中的任何位置删除countries
表中的任何记录时,出现错误消息:
SQLite3 :: SQLException:没有这样的列:countries.country_id:SELECT>“ countries”。*从“ countries”到“ 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
。
答案 0 :(得分:0)
我找到了解决我问题的方法。在Country
模型中,我有一个错字说
class Country < ApplicationRecord
has_many :countries, dependent: :destroy
validates :code, presence: true, uniqueness: true
end
这就是为什么我遇到Sqlite3异常错误的原因;因为我认为数据库假设我应该有一个country_id
,因为country
有很多countries
。无论如何,我将上面的countries
更改为cities
,它的工作就像是一种魅力。感谢您的帮助,SOS。