Я некоторое время боролся за то, чтобы сделать это правильно, поэтому я решил опубликовать ответ здесь.Хотя вышеприведенное работает для стандартного изображения по умолчанию (т. Е. Одно и то же для каждого стиля скрепки), если вам нужно несколько стилей по умолчанию, вам нужен другой подход.
Если вы хотите, чтобы URL по умолчанию хорошо сочетался с ресурсомконвейер и синхронизация ресурсов требуют разных изображений по умолчанию для каждого стиля, тогда вам нужно сгенерировать путь к активу без отпечатков пальцев, иначе вы получите множество ошибок AssetNotPrecompiled.
Примерно так:
:default_url => ActionController::Base.helpers.asset_path("/missing/:style.png", :digest => false)
илив параметрах скрепки:
:default_url => lambda { |a| "#{a.instance.create_default_url}" }
, а затем метод экземпляра в модели, к которой прикреплено скрепка:
def create_default_url
ActionController::Base.helpers.asset_path("/missing/:style.png", :digest => false)
end
В этом случае вы все равно можете использовать интерполяцию (: стиль)но придется отключить дактилоскопию / дайджест актива.
Кажется, что все это работает нормально, если вы синхронизируете ресурсы без дайджеста, а также с дайджестом.