gpt4 book ai didi

ruby-on-rails - 处理版本时如何跳过载波存储回调

转载 作者:行者123 更新时间:2023-12-03 22:41:20 25 4
gpt4 key购买 nike

我在 video uploader 中定义了一个回调载波类别after :store, :my_method我有三个版本的文件。 original , standard , lowmy_method在处理每个版本时执行,即执行三次,我只需要回调执行一次。

最佳答案

我知道这是一个很晚的回复,但我最近遇到了同样的问题,所以我决定发布我如何解决这个“问题”,因为它似乎没有记录在carrierwave的github页面上(或者我找不到无论如何)。

好的,关于 after :store, :my_method回调,如果你把它放在你的上传器类的“主体”中,那么它会在每次存储文件时执行,所以在你的情况下,我认为它甚至不仅对你的 3 个版本而且对你的原始文件执行以及。

假设以下代码定义了您的载波上传器:

class PhotoUploader < CarrierWave::Uploader::Base
after :store, :my_method

version :original do
process :resize_to_limit => [1280,960]
end

version :standard, from_version: :original do
process :resize_to_limit => [640,480]
end

version :low, from_version: :standard do
process :resize_to_limit => [320,240]
end

protected
def my_method
puts self.version_name
end
end

这样, after :store将针对存储的每个文件执行,但如果您只想执行它,例如,对于 :low版本,您所要做的就是在版本定义中移动该行。像这样:
class PhotoUploader < CarrierWave::Uploader::Base

version :original do
process :resize_to_limit => [1280,960]
end

version :standard, from_version: :original do
process :resize_to_limit => [640,480]
end

version :low, from_version: :standard do
process :resize_to_limit => [320,240]
after :store, :my_method
end

protected
def my_method
puts self.version_name
end
end

我在我的代码上测试了它并且它有效......我知道你发布这个问题已经很长时间了,可能你和我得到了相同的解决方案。所以我决定回答它以供将来遇到相同问题的任何人引用。

关于ruby-on-rails - 处理版本时如何跳过载波存储回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24378528/

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