在Rails中显示carrierwave上传图像的自定义URL

时间:2015-05-17 12:32:00

标签: ruby-on-rails ruby-on-rails-4 carrierwave

我正在公共文件夹之外的文件夹中上传一些图像。我在上传时创建了图像的预览版本。在我的上传器中,我有:

  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类似的方式为图像存储自定义自定义网址,以便稍后我可以创建一个可以为这些图像提供服务的控制器方法?

1 个答案:

答案 0 :(得分:1)

我不记得任何简单的解决方案,但我认为您可以通过手动构建JSON中的url来指定它。例如,你可以在模型中使用像RABL,active_model_serializers或build方法这样的gem。 def to_public_json,其中包含图像的自定义URL。