Railsを使って建物
、タグ
の2つのデータを扱うシステムを実装中です。
#やりたいこと
建物とタグをそれぞれ任意の数作成できて、建物には複数のタグをつけることができます。
タグも建物も削除することはできますが、どちらかの削除に連動して、もう片方が削除されることはありあません。
#できていること
building_tag.rb
という中間モデルを作成し、BuildingモデルとTagモデルを関連づけることはできました。
つまり、各々を別で作成して、建物にタグを関連付けることはできました。
#できないこと
建物を削除しようとすると、次のようなエラーが出ます。
ActiveRecord::InvalidForeignKey (SQLite3::ConstraintException: FOREIGN KEY constraint failed: DELETE FROM "buildings" WHERE "buildings"."id" = ?):
エラーの内容を見るに、外部キーに関する何らかの問題が起こっていると解釈したのですが、モデルの問題なのでしょうか。
どうすればデータを削除できるのかわからず、困っています。
わかる方、どこに問題があるのか教えていただけないでしょうか。
下記、モデルです。他に必要なコードがあれば掲載します。
宜しくお願いいたします。
##モデル
ruby
1class Building < ApplicationRecord 2 has_many :building_tag, dependent: :destroy 3 has_many :tag, :through => :building_tag 4 accepts_nested_attributes_for :building_tag
ruby
1class Tag < ApplicationRecord 2 has_many :building_tag 3 has_many :building, :through => :building_tag
ruby
1class BuildingTag < ApplicationRecord 2 belongs_to :building 3 belongs_to :tag 4end
回答1件
あなたの回答
tips
プレビュー