railsチュートリアル第13章を実施中です。
railsの2つmodelを作成し、片方のmodelをdestroyで削除する際、
外部キー制約のエラーが出てしまいます。
外部キー制約の回避のため、modelに「dependent: :destroy」を記述したのですが、
それでもエラーが出てしまったため、色々調べたもののわからず、
エラーの解決方法をお伺いしたいです。
■consoleで実行したコード
ruby
1User.find(1).destroy
■出たエラー
ruby
1 User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 2 (0.1ms) begin transaction 3 SQL (1.2ms) DELETE FROM "users" WHERE "users"."id" = ? [["id", 1]] 4 (1.0ms) rollback transaction 5Traceback (most recent call last): 6 2: from (irb):42 7 1: from (irb):42:in `rescue in irb_binding' 8ActiveRecord::InvalidForeignKey (SQLite3::ConstraintException: foreign key constraint failed: DELETE FROM "users" WHERE "users"."id" = ?)
■model1つ目
ruby
1class User < ApplicationRecord 2 has_many :microposts, dependent: :destroy 3end
■model2つ目
ruby
1class Micropost < ApplicationRecord 2 belongs_to :user 3 validates :user_id, presence: true 4end
なお、下記の質問も参考にしたのですが、
destroyを使っているにも関わらずエラーが出ている状況です。
stack overflow: Railsで1:多のモデルを消す際にエラーが出る。
不足情報あれば補足させていただきたく、お手数をおかけしますが、ご教示いただけますと幸いです。
よろしくお願いいたします。
あなたの回答
tips
プレビュー