Z trudem radziłem sobie z tym przez jakiś czas, więc pomyślałem, że zamieszczę tutaj odpowiedź. Chociaż powyższe działa dla standardowego domyślnego obrazu (to jest tego samego dla każdego stylu spinacza), jeśli potrzebujesz wielu domyślnych stylów, potrzebujesz innego podejścia.
Jeśli chcesz, aby domyślny URL był przyjemny w połączeniu z potokiem aktywów i synchronizacją zasobów i chcesz mieć różne domyślne obrazy dla każdego stylu, musisz wygenerować ścieżkę zasobu bez odcisków palców, w przeciwnym razie uzyskasz wiele błędów AssetNotPrecompiled.
tak:
:default_url => ActionController::Base.helpers.asset_path("/missing/:style.png", :digest => false)
lub w opcjach spinacza:
:default_url => lambda { |a| "#{a.instance.create_default_url}" }
a następnie metody instancji w modelu, który ma przywiązanie spinacza:
def create_default_url
ActionController::Base.helpers.asset_path("/missing/:style.png", :digest => false)
end
W ten Jeśli nadal możesz użyć interpolacji (: styl), ale musisz wyłączyć odcisk palca/trawienie zasobów .
Wszystko to działa dobrze, o ile synchronizujesz zasoby bez skrótów, a także ze skrótem.
Inna opcja: http://stackoverflow.com/questions/9646549/default-url-in-paperclip-broke-with-asset-pipeline-upgrade – James