Ho trovato alcuni post qui riguardo File.exists? in un'app Rails ma provare le soluzioni non mi ha aiutato, sono abbastanza nuovo quindi devo fare qualcosa di stupido.Rails File.exist? produce false quando è presente il file
sto usando:
- Rails 3.2.11
- Rubino 1.9.3
- Paperclip per il file indicato di seguito
- ActiveAdmin per caricare il file indicato di seguito
- Lavorare in ambiente di sviluppo
- Attività non precompilate
ho un modello di "stile" e ha un immagine allegata, mi può rendere l'immagine con
<%= image_tag(@style.style_image) %>
e funziona bene.
In breve, voglio controllare se l'immagine del file è effettivamente lì nella cartella in cui dovrebbe essere - Non voglio usare @ style.style_image.present? per il controllo delle immagini perché questo controlla solo il record db. Voglio usare File.exist? per vedere se esiste effettivamente un file per @ style.style_image.
Così nel mio file di vista, ho il codice
<% if File.exist?(@style.style_image.url) %>
The image exists.
<% else %>
The image is not here.
<% end %>
Ed è sempre stampe "l'immagine non è qui" quando carico della pagina. Subito sotto sto visualizzando la mia immagine usando image_tag, quindi so per certo che l'immagine è lì.
Ho anche provato
<% if File.exist?(Rails.root + @style.style_image.url) %>
senza fortuna. Ho anche provato a utilizzare FileTest.exist ?, FileTest.exists? E File.exists? ma nessuno mi dirà la verità quando l'immagine è definitivamente lì.
C'è qualcosa che mi manca? Qualsiasi guida sarebbe molto apprezzata. Sono solo pochi mesi in Ruby e Rails quindi probabilmente mi manca qualcosa di stupido.
È necessario passare un percorso a 'File.exist?' Non un URL. – silasjmatson
Non sono sicuro del motivo per cui non hai una valutazione più alta per questa domanda. Bene chiesto +1. – sscirrus