如何获得指向已删除记录的外键?

时间:2019-01-14 21:51:29

标签: ruby-on-rails postgresql foreign-keys

我有一个const columnizer = require('columnizer.js'); 模型和一个Song模型。

我将Audit销毁时,想创建一个Song,例如

Audit

但这会导致这样的崩溃:

if @song.destroy
  Audit.create(song: @song, deleted: true)

如何获得一个ID指向不再存在的歌曲的快乐保存?

2 个答案:

答案 0 :(得分:0)

外键旨在防止出现这种情况。也许您可以使用acts_as_paranoid之类的宝石来实现软删除?软删除某些内容时,可以使用一列将其标记为已删除并将其从查询中排除,而无需实际从数据库中删除它。这样一来,您就可以继续从Audit模型访问Song记录,同时对用户保持隐藏状态。

答案 1 :(得分:0)

如何使用before_destroy回调保存创建审核

打开应用程序/模型/Song.rb

# add callback
before_destroy :audit_song

# create method
def audit_song
  Audit.create(song: self, deleted: true)
end