【发布时间】:2019-12-04 22:47:07
【问题描述】:
我正在开发一个 Rails 网络应用程序。我有一个名为countries 的表,它与另外两个表相关联:cities 和sites。当我尝试将countries 表中的code 列更改为name 时,出现以下异常:
ActiveRecord::InvalidForeignKey: SQLite3::ConstraintException: FOREIGN KEY 约束失败:DROP TABLE "countries"
我已经尝试添加 dependent: :destroy 东西,但我仍然遇到同样的异常。我尝试删除表并重新创建它,但仍然无法正常工作。任何帮助将不胜感激。
Country模特:
class Country < ApplicationRecord
has_many :cities, dependent: :destroy
has_many :sites, dependent: :destroy
has_many_attached :photos
validates :code, uniqueness: true
validates :about, presence: true
end
这是我用来更改countries 表中列名称的迁移代码:
class FixCodeName < ActiveRecord::Migration[5.2]
def change
rename_column :countries, :code, :name
end
end
【问题讨论】:
标签: ruby-on-rails database sqlite activerecord ruby-on-rails-5