###前提・実現したいこと
Railsにてアプリを製作中です。
多対多の関係をもつモデルA, Bがあり、それらの間にモデルCも用意しています。
このとき、関連付けを行うときに例外が発生しうまくいかないため困っています。
Ruby
1class Model_A < ActiveRecord::Base 2 has_many :model_C 3 has_many :model_B, :through => :model_C 4end 5 6class Model_B < ActiveRecord::Base 7 has_many :model_C 8 has_many :model_A, :through => :model_C 9end 10 11class Model_C < ActiveRecord::Base 12 belongs_to :model_A 13 belongs_to :model_B 14end
レコードの関連付けを行うためのコードは以下のようになっています。
Ruby
1aid, bid = (適当な数字), (適当な数字) 2a = Model_A.find_by(id: aid) 3b = Model_B.find_by(id: bid) 4 5a.model_Bs << b # 例外が発生
モデルAのaid番目のレコードと、モデルBのbid番目のレコードの関連付けを行おうとすると、SQLite3::BusyException: database is locked : INSERT INTO "model_Cs"という例外が発生します。
データベースのタイムアウトの問題かと思い、database.ymlのtimeoutの値を変えてみましたが、例外は未だ発生します。この例外が発生する理由は何でしょうか?また、関連付けのより適切な方法があればご教授お願いします。
###補足情報
Ruby 2.2.2p95
Rails 4.2
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。