gpt4 book ai didi

ruby-on-rails - carrierwave uploader 上传文件,但仍然提供 default_url

转载 作者:行者123 更新时间:2023-12-04 16:35:51 25 4
gpt4 key购买 nike

我在 Rails 3 应用程序中使用 carrierwave 从远程源上传文件并将其存储在我服务器的文件系统中。我有一个完全标准的设置, uploader 安装在与图像关联的模型上。

它在 99.9% 的时间里都能完美运行,但每隔 600 张左右的图表我就会遇到一个问题,即应用程序始终无法提供存储的图像。如果我检查文件系统,图形图像已上传并存储在正确的位置,具有正确的文件权限和所有内容,但 Rails 完全不知道它并继续为该实例提供默认图形图像。

换句话说,id 为 123 的图形将其图像存储在/uploads/graphs/123/graph.png ... 那里有正确的图像,但就 Rails 而言,它没有存储图像。所有其他图形图像仍然可以正常工作,但我无法让 rails 知道为 123 存储的图像。删除并重新存储图像不起作用。手动删除图像并重新上传不起作用。我完全迷路了。图实例有效,保存时日志中没有错误。

例如,在控制台中:

g = Goal.find_by_id("123")
g.remote_graph_url = "http://image.source/url.png"
> "http://image.source/url.png"
g.save
> true
g.graph?
> false
g.graph_url >> /default/image.png

相关代码如下:

class GraphUploader < CarrierWave::Uploader::Base
def store_dir
"../uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def default_url
"/images/" + [version_name, "default_large_graph.png"].compact.join('_')
end
def extension_white_list
%w(jpg jpeg gif png)
end
def filename
"graph.png" if original_filename
end
end

class Graph
mount_uploader :graph, GraphUploader
end

最佳答案

希望我能回复...

所以您将上传文件保存在公共(public)目录之外?如果这不是您的意图,请尝试删除图片前的“../”。

关于ruby-on-rails - carrierwave uploader 上传文件,但仍然提供 default_url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705820/

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