Ruby on rails 软删除记录的更新列(偏执狂)
我想在Ruby on Rails上更新软删除记录列。Ruby on rails 软删除记录的更新列(偏执狂),ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我想在Ruby on Rails上更新软删除记录列。 代码是 item = Item.with_deleted.find_by(name: name) item.title = "foo" item.save! 对于非软删除记录,此操作正常, 但对于软删除记录,此错误将在“item.save!”上输出 找不到“id”=4的项目[其中项目已删除\u at为空] 此代码具有相同的结果 item = Item.with_deleted.find_by(name: name).update!(titl
代码是
item = Item.with_deleted.find_by(name: name)
item.title = "foo"
item.save!
对于非软删除记录,此操作正常,但对于软删除记录,此错误将在“item.save!”上输出 找不到“id”=4的项目[其中
项目已删除\u at
为空]
此代码具有相同的结果
item = Item.with_deleted.find_by(name: name).update!(title: 'foo')
奇怪的是,在“rails控制台”中,这些代码运行良好。
在“rails服务器”中,它们不起作用
任何信息都会大有帮助。
谢谢 您是否尝试过项。已删除。\u。通过(名称:name)查找。\u。已删除。\u。更新!(标题:“foo”)
?可能是在调用.update时,使用和_deleted
找到的项目不再具有查找范围。我不知道这是否有帮助,但如果没有帮助,您可能会很高兴使用类似于Item.update\u all([“name=?”,name],title:'foo')。限制(1)
,这将绕过模型的所有验证和回调逻辑。您是否尝试过Item.with\u deleted.find\u by(name:name)。with\u deleted.update!(标题:“foo”)
?可能是在调用.update时,使用和_deleted
找到的项目不再具有查找范围。我不知道这是否有帮助,但如果没有,您可能很乐意使用类似Item.update_all([“name=?”,name],title:'foo')。限制(1)
,但这将绕过模型的所有验证和回调逻辑。