Проверено только на Rails 4.
Чтобы заставить его работать в рабочей среде, мы должны передать имя существующего файла помощнику asset_path
.Поэтому передача строки, содержащей заполнитель типа "missing_:style.png"
, не работает.Я использовал пользовательскую интерполяцию в качестве обходного пути:
# config/initializers/paperclip.rb
Paperclip.interpolates(:placeholder) do |attachment, style|
ActionController::Base.helpers.asset_path("missing_#{style}.png")
end
Обратите внимание, что вы должны , а не префикс пути с images/
, даже если ваше изображение находится в app/assets/images
.Затем используйте его следующим образом:
# app/models/some_model.rb
has_attached_file(:thumbnail,
:default_url => ':placeholder',
:styles => { ... })
Теперь стандартные URL-адреса с правильными хеш-кодами разыгрываются в производстве.
Опция default_url
также принимает лямбду, но я не смог найти способопределить запрошенный стиль, поскольку интерполяции применяются только к результату лямбды.