我正在根据用户输入以编程方式创建一些记录,并创建要导入的记录数组。
当我检查数据库时,如果它们是新记录,我可以看到关系已经创建。
如果其中一条记录已存在于数据库中,我可以在关联表中看到以下条目,但我还可以看到新记录已在各自的表中创建,因此它们存在但记录 ID 未在关联表。
user_id: 1
keyword_id: null
但如果我第二次运行代码,它将正确添加关系。
这是我的代码
records_to_add = []
words.each do |word|
keyword = Keyword.find_or_initialize_by(
word: word,
device: device,
)
records_to_add.push(keyword)
end
keywords_added = Keyword.import records_to_add, on_duplicate_key_ignore: true, validate: true
user.keywords << records_to_add
我认为这部分代码有问题
user.keywords << records_to_add
如果其中一条记录已存在,则无法正确创建关系...