2015-12-14 2 views
5

Ho un generatore settimanale che blocca alcuni file. Alcuni sono attivi in ​​app/assets/images/xxx.xxx alcuni sono caricati tramite Paperclip e in public/system/env...Rails - Come ottenere il percorso del file (non il percorso url) per le risorse?

I percorsi dei file che ho iniziano dopo app, senza /images/ o public.

Avrò qualcosa come /assets/some.png o /system/production/xyz/some.jpg, e questi saranno serviti bene come un percorso URL, ma voglio raccoglierli in un file.

Come posso ottenere il percorso di file di una risorsa?


Penso che questo sia un modo più semplice per spiegarlo.

Data la stringa URI asset, come posso trovare e ottenere il percorso del file dell'asset?

L'asset sentiero URL /assets/logo.png potrebbe essere uno dei file:

public/logo.png 
public/assets/logo.png 
app/assets/images/logo.png 
+0

Se io capisci correttamente cosa stai cercando di chiedere qui ... vuoi definire un percorso file di risorse, ad esempio "app /" nome-del-file "/xxx.xxx." tipo-file "' – CallmeSurge

+0

@CallmeSurge Vorrei un percorso file quel rubino '' 'File''' può aprirsi. I percorsi di url di asset non necessitano di public/o della parte '' '/ images''' di assets/images/logo.png. Ma voglio ottenere i file con uno script Ruby sul server, non via HTTP –

risposta

0

Rails.root ti dà il percorso assoluto alla radice del progetto. (restituisce un Pathname oggetto)

è quindi possibile fare qualcosa del genere:

Rails.root.join("some_dir1", "some_dir2", "some_file") 

in modo da ottenere un percorso di un file all'interno pubblici/Attività:

Rails.root.join("public", "assets", "file.jpg") 
+1

Questo non risponde alla domanda. Un percorso url asset, NON è solo percorso file senza la radice del progetto. Il percorso url della risorsa '' '/ assets/logo.png''' potrebbe essere' '' public/logo.png''', '' 'public/assets/logo.png''',' '' app/assets/images/logo.png'''. Questi sono tutti percorsi di file diversi, e data solo la stringa '' '" /assets/logo.png "' '', quindi '' 'Rails.root''' non troverà la risorsa e restituirà il suo percorso. –