gpt4 book ai didi

ruby-on-rails - 当字符串字段被修改时,我可以强制 ActiveRecord 保存模型吗?

转载 作者:行者123 更新时间:2023-12-04 03:33:49 24 4
gpt4 key购买 nike

我有一个具有长字符串字段的 ActiveRecord 模型。实际上,这个字符串代表一个数组,我想就地修改它而不是复制整个字符串。

例如让我们说 Somemodel有一个字符串字段 array .然后以下无法保存:

m = Somemodel.first
m.array[someindex] = somevalue
m.save

其实, save返回 true 似乎是为了检查 array有相同的 object_id并决定模型没有改变并跳过到数据库的往返。

我最终使用了以下解决方法:
m = Somemodel.first
a = String.new(m.array) # remember, the array is represented as a string
a[someindex] = somevalue
m.array = a
m.save

请注意 m.array必须在修改其值后设置,因为 save看值(value)而不仅仅是 object_id .

这感觉很麻烦,并且需要复制整个字符串。不适合大型阵列。 我可以告诉save在不进行验证测试的情况下绕过这些 is-model-modified 检查?

最佳答案

也许这就是您要找的:http://api.rubyonrails.org/classes/ActiveModel/Dirty.html :

If an attribute is modified in-place then make use of [attribute_name]_will_change! to mark > that the attribute is changing.

关于ruby-on-rails - 当字符串字段被修改时,我可以强制 ActiveRecord 保存模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8400572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com