如何修复“ SQLite3 :: SQLException:无此类列:{table_name}。{singular_table_name} _id:”

时间:2019-07-25 20:35:04

标签: ruby-on-rails sqlite ruby-on-rails-5

我正在创建Ruby on Rails Web应用程序,并希望能够从countries表中删除记录。当我尝试从应用程序中的任何位置删除countries表中的任何记录时,出现错误消息:

  

SQLite3 :: SQLException:没有这样的列:countries.country_id:SELECT>“ countries”。*从“ countries”到“ countries”。“ country_id” =?

我不确定为什么会这样。

我正在使用ActiveAdmin。应用程序中还有2个其他表:citiessites。我包含在路由中的模型之间存在关联:

resources :countries do
    resources :cities do
      resources :sites
    end
  end
  resources :countries
  resources :cities
  resources :sites

City模型属于Country,而Country有很多cities,而Site属于CityCity的地方有很多sites

1 个答案:

答案 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。