Carrierwave не отображает путь к файлу в представлении XML - это нормально? - PullRequest
0 голосов
/ 11 мая 2011

У меня есть приложение, которое работает с Carrierwave.Я даже могу сделать что-то вроде @ product.image.url, который даст мне путь к URL сохраненного изображения.

Однако, когда я просматриваю продукты # 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>
  ...

1 Ответ

1 голос
/ 11 мая 2011

Да, я думаю, что 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) }
...