【发布时间】:2021-03-20 17:50:34
【问题描述】:
我是 Ruby on Rails 的新手。我尝试制作标签并可以选择删除标签。当我想销毁标签时,我收到此错误 SQLite3::ConstraintException: FOREIGN KEY constraint failed.
ActiveRecord::InvalidForeignKey in TagsController#destroy
这是我在控制器中删除标签的代码:
def destroy
@tag = Tag.find(params[:id])
@tag.destroy
flash.notice = "Tag '#{@tag.name}' Deleted!"
redirect_to tags_path
end
这是 schema.rb
ActiveRecord::Schema.define(version: 2021_03_20_115719) do
create_table "articles", force: :cascade do |t|
t.string "title"
t.text "body"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "comments", force: :cascade do |t|
t.string "author_name"
t.text "body"
t.integer "article_id", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["article_id"], name: "index_comments_on_article_id"
end
create_table "taggings", force: :cascade do |t|
t.integer "tag_id", null: false
t.integer "article_id", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["article_id"], name: "index_taggings_on_article_id"
t.index ["tag_id"], name: "index_taggings_on_tag_id"
end
create_table "tags", force: :cascade do |t|
t.string "name"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
add_foreign_key "comments", "articles"
add_foreign_key "taggings", "articles"
add_foreign_key "taggings", "tags"
end
【问题讨论】:
-
您需要为
Tag发布您的schema.rb资料。很可能您在另一个表中设置了一个约束来引用Tag。 -
@ChristopherOezbek 我用模式填写问题。提前致谢
标签: ruby-on-rails ruby