Carrierwave 获取图像 url

Carrierwave get image by url

我需要通过 url 获取一些图像。

url类似于http://img.wallsbay.com/large/2014/05/2665.jpg,但 2014 和 2665 正在发生变化。

我的控制器有这个参数:

  def image_params
    params.require(:image).permit(:content, :remote_content_url, :id)
  end

我试着从 url 中获取图像,如下所示:

@image.remote_content_url = 'http://img.wallsbay.com/large/#{:content}/05/#{:id}jpg'

但是remote_content_url是未定义的方法。

获取图像 URL 的正确方法是 @image.content.url 假设 content 是您用于 Carrierwave 的属性。

remote_<attr_name>_url属性是按给定的URL上传图片。

@model.remote_content_url = "http://img.wallsbay.com/large/2014/05/2665.jpg"
@model.save
@model.content_url // => "<upload-dir>/2665.jpg"

使用@model.content_url检索上传图片的url。

要应用转换,请使用 @model.content_url(:square)

我通过将 attr_accessor :remote_content_url 添加到我的图像模型中解决了这个问题。