Скрепка сменяет путь изображения после обновления до рельсов 3.2
У меня проблема с paperclip (3.0.2) после обновления до рельсов 3.2 (из 3.0.10).
Первоначально путь одного изображения:
"http://localhost:3000/system/photos/94/small/AudiLogo.jpg?1335392139"
и после обновления этот вид изображений никогда не будет отображаться снова!, но если я загружу новое изображение, это будет отображаться отлично на странице, но новый путь, который используется:
"localhost:3000/system/products/photos/000/000/094/smal/AudiLogo.jpg?1335392139"
Что произошло в обновлении? Есть ли какое-либо решение для преобразования пути olds к новому?
Я пытаюсь использовать "rake paperclip: refresh: missing_styles", но dosen't работает.
Конфигурация paperclip config this this.
has_attached_file :photo,
:processors => lambda { |a|
if a.external?
[:thumbnail]
else
[:thumbnail,:watermark]
end
},
:styles => {
:slider => { :geometry => "350x312#", :format => :jpg, :watermark_path => "#{Rails.root}/public/images/watermark.png", :position => "NorthEast" },
:small => "100x50>",
:medium => "200>x200",
:thumb => "100x100>",
:big => { :geometry => "640x480>", :format => :jpg, :watermark_path => "#{Rails.root}/public/images/watermark.png" }
},
:default_url => "/images/noimage.png"
Спасибо заранее.
Ответы
Ответ 1
У меня была та же проблема. Вы можете исправить это, создав файл типа config/initializers/paperclip.rb и поместите
Paperclip::Attachment.default_options.merge!(
:path => ":rails_root/public/system/:attachment/:id/:style/:basename.:extension",
:url => "/system/:attachment/:id/:style/:basename.:extension"
)
Ответ 2
У меня просто было аналогичное обновление и маршрутизация вокруг моей проблемы следующим образом:
has_attached_file :image,
:url => "/images/photos/:id/:basename_:style.:extension",
:path => ":rails_root/public/images/photos/:id/:basename_:style.:extension",
Ответ 3
Предполагая, что разница между "малым" и "малым" между исходным и текущим путем является опечаткой, другое очевидное изменение - это добавление двух числовых сегментов после "/photos/".
".../photos/000/000/094/smal/AudiLogo.jpg?1335392139"
Я подозреваю, что это происходит из id_partition, используемого для пути. Вы устанавливаете другую интерполяцию пути по умолчанию в другом месте?
Глядя на код скрепки, я вижу метод id_partition, который будет отвечать за это, но до сих пор не нашел никакой документации, указывающей в направлении изменение поведения по умолчанию. Я не стал следить за кодом в камне, чтобы определить, является ли это ошибкой или недокументированным изменением.