为 Rails 中的载波上传图像显示自定义 url
Display a custom url for a carrierwave uploaded image in Rails
我正在 public 文件夹之外的文件夹中上传一些图像。我在上传时创建了图像的预览版本。在我的上传器中,我有:
def store_dir
"#{Rails.root}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :preview do
process :resize_to_fit => [500, 500]
end
效果很好,我没有遇到任何问题,但是现在当我的 JSON api 将模型发送到我的前端应用程序时,图像和图像的 url 参数预览版本设置为我机器上文件的确切文件路径。我显然不想这样。
有没有一种方法可以像设置 store_dir 一样为图像存储自定义 url,这样我以后就可以创建一个控制器方法来为这些图像提供服务图片?
我不记得有任何简单的解决方案,但我认为您可以通过手动构建在 JSON 中指定 url 来实现。例如,您可以使用 gem 之类的 RABL,active_model_serializers 或模型中的构建方法,例如。 def to_public_json 为图像自定义 url。
我正在 public 文件夹之外的文件夹中上传一些图像。我在上传时创建了图像的预览版本。在我的上传器中,我有:
def store_dir
"#{Rails.root}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :preview do
process :resize_to_fit => [500, 500]
end
效果很好,我没有遇到任何问题,但是现在当我的 JSON api 将模型发送到我的前端应用程序时,图像和图像的 url 参数预览版本设置为我机器上文件的确切文件路径。我显然不想这样。
有没有一种方法可以像设置 store_dir 一样为图像存储自定义 url,这样我以后就可以创建一个控制器方法来为这些图像提供服务图片?
我不记得有任何简单的解决方案,但我认为您可以通过手动构建在 JSON 中指定 url 来实现。例如,您可以使用 gem 之类的 RABL,active_model_serializers 或模型中的构建方法,例如。 def to_public_json 为图像自定义 url。