gpt4 book ai didi

ruby-on-rails - 修补 ActiveStorage::Attachment 的猴子丢失了

转载 作者:数据小太阳 更新时间:2023-10-29 06:50:04 25 4
gpt4 key购买 nike

所以我决定向 ActiveStorage::Attachment 对象添加一个 url attr_accessor。

开发中,补丁会保留一段时间,直到它似乎“已丢失”。这意味着它工作了几分钟,然后就不再工作了。然后我需要重新启动服务器才能再次应用补丁。我相信我没有正确打补丁,我需要这方面的建议。


这是我尝试过的:

lib/ext/active_storage/attachment.rb

第一次尝试:

module ActiveStorageUrl
extend ActiveSupport::Concern

included do
attr_accessor :url
end
end

ActiveStorage::Attachment.send :include, ActiveStorageUrl

第二次尝试

class ActiveStorage::Attachment < ActiveRecord::Base
attr_accessor :url
end

顺便说一下,在这两种情况下它都加载了这个:

config/initializers/monkey_patches.rb

require 'ext/active_storage/attachment'

所以当它工作时我没有错误消息,但过了一会儿补丁“消失”(缺少更好的术语),我得到以下错误,告诉我我的 attr_accessor 不存在了。 Rails 一定是重新加载了 ActiveStorage 类,而我的补丁丢失了。

Module::DelegationError in Products#images
url delegated to blob, but blob is nil

最佳答案

我将我的 ActiveStorage::AttachmentMonkeyPatch 放在 /app/models/active_storage/
如果附件已更改,我添加了一个回调以得到通知。它始终运行良好。

也许这就是问题所在。

关于ruby-on-rails - 修补 ActiveStorage::Attachment 的猴子丢失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55109738/

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