0

我有一个适用于 Carrierwave 的应用程序。我什至可以执行@product.image.url 之类的操作,这将为我提供存储图像的 url 路径。

但是,当我浏览到 products#show (即http://localhost:3000/products/1.xml)时,它会正确显示除图像之外的所有内容。

在控制台中,@product.image.url 返回:

"https://bucket_name.s3.amazonaws.com/uploads/products/2/prod1.jpg" 

图像仅显示名称和扩展名。不是路径。这是正常的吗?

例如,xml 看起来像:

product>
  <attachment>prod1.jpg</attachment>
  <cached-slug>adsfsadf</cached-slug>
  <category-id type="integer">1</category-id>
  <company-id type="integer">1</company-id>
  <created-at type="datetime">2011-05-10T05:10:35Z</created-at>
  <description>description here</description>
  ...
4

1 回答 1

1

是的,我认为 Carrierwave 正在动态生成 url(在方法内),因此您可以更改或覆盖其计算方式。

format.xml  { render :xml => @product.to_xml(:include => {:attachment => {:only => :url}}) }

编辑:对我有用:

format.xml  { render :xml => @product.to_xml(:except => :attachment, :methods => :attachment_url) }
于 2011-05-11T12:32:30.073 回答