関連付けられているタスクなしで投稿を破棄したいと考えています。しかし、私は現在、言うSQLエラー直面しています:関連するタスクのない投稿を削除する
ActiveRecord::InvalidForeignKey (SQLite3::ConstraintException: FOREIGN KEY constraint failed: DELETE FROM "posts" WHERE "posts"."id" = ?):
いくつか検索した後に、私は団体や外部キーから来て見ました。しかし、私は今問題を解決することはできません。
私は(オプション:真)を私のモデルに入れてテストしました。
外部キーを(、on_delete::cascade)&(、on_delete::nullify)に変更しようとしましたが、まだ動作していません。
私のコードは=
//Post Model
class Post < ApplicationRecord
has_one :task
end
//Task Model
class Task < ApplicationRecord
belongs_to :post, optional: true
end
を破壊するために:
//Destroy_one into the Post Controller
def destoy_one
@post.destroy
end
移行ファイル:(もon_deleteで試してみました:無効)
class EditForeightKeys < ActiveRecord::Migration[5.1]
def change
# remove the old foreign_key
remove_foreign_key :tasks, :post
# add the new foreign_key
add_foreign_key :tasks, :post, on_delete: :cascade
end
end
をあなたがのために他のソリューションを持っていますかそれ ?
あなたは@ post.deleteを試しましたか? – krishnar
こんにちは@krishnar、もう一度あなたを見て幸せ!タスク、:、on_deleteポスト::このソリューション@jacquesMesnetため –
ただまあ、私は正確に問題 – nikolay