我挣扎了一段时间,所以我想我会在这里发布答案。虽然以上适用于标准默认图像(即每种回形针样式相同),但如果您需要多个默认样式,则需要不同的方法。
如果你想让默认 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
在这种情况下,您仍然可以使用插值 (:style),但必须关闭资产指纹/摘要。
只要您同步没有摘要的资产以及具有摘要的资产,这一切似乎都可以正常工作。