50 votes

Rails 3.1: Déterminer si l'actif existe

Est-il un moyen intégré pour déterminer si un actif existe sans avoir recours à l' File.exists?(File.join(Rails.root, "foo", "bar", "baz")) et que l'on regarde à travers l'actif des chemins.

Mon application va et va chercher des images à partir d'un serveur distant sur un Resque file d'attente; jusqu'à ce que nous avons l'image téléchargée je veux servir une image d'espace réservé. Actuellement, je suis en utilisant File.exists... mais cela signifie de codage en dur un chemin, qui suce, ou à la recherche par le biais de la configuration de l'actif des chemins. Il semble que ce devrait être déjà là, mais je ne le trouve pas dans les docs.

68voto

Joe Van Dyk Points 2624

Donné une image en app/assets/images/lolshirts/theme/bg-header.png,

Rails.application.assets.find_asset 'lolshirts/theme/bg-header.png'
 => #> Sprockets::StaticAsset:0x80c388ec pathname="/Users/joevandyk/projects/tanga/sites/lolshirts/app/assets/images/lolshirts/theme/bg-header.png", mtime=2011-10-07 12:34:48 -0700, digest="a63cc84aca38e2172ae25de3d837c71a">

Rails.application.assets.find_asset 'notthere.png'
 => nil

6voto

Kira Corina Points 312

Voir cette réponse: http://stackoverflow.com/a/8217598/549252

= Rails.application.assets.find_asset("my_asset.css").nil?

2voto

rusty Points 1281

Veuillez voir la réponse ici pour une discussion sur pourquoi est - find_asset peut ne pas toujours fonctionner:

Inclure Des Actifs Seulement S'Ils Existent

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X