<%= image_tag("/images/users/user_" + @user_id.to_s + ".png") %>
आप यह देखने के लिए कैसे जांचते हैं कि ऐसी छवि है या नहीं, तो कुछ भी प्रदर्शित नहीं करते?रेल में छवि मौजूद है या नहीं, यह कैसे जांचें?
रेल 3.07 में काम करना।
<%= image_tag("/images/users/user_" + @user_id.to_s + ".png") %>
आप यह देखने के लिए कैसे जांचते हैं कि ऐसी छवि है या नहीं, तो कुछ भी प्रदर्शित नहीं करते?रेल में छवि मौजूद है या नहीं, यह कैसे जांचें?
रेल 3.07 में काम करना।
आप File.exist? का उपयोग कर सकते हैं।
if FileTest.exist?("#{RAILS_ROOT}/public/images/#{img}")
image_check = image_tag("#{img}",options)
else
image_check = image_tag("products/noimg.gif", options)
end
आप File.file का उपयोग कर सकते हैं? तरीका।
if File.file?("#{Rails.root}/app/assets/images/{image_name}")
image_tag("#{image_name}")
end
आप File.exist का भी उपयोग कर सकते हैं? विधि लेकिन अगर यह निर्देशिका या फ़ाइल पाती है तो यह सच हो जाएगी। विधि फ़ाइल? अस्तित्व से थोड़ा अधिक picky है?
अन्य उत्तर रेल 4. के बाद से रेल संपत्ति पाइप लाइन में परिवर्तन की वजह से, एक छोटे से पुराने हो गए हैं निम्नलिखित कोड रेल 4 और 5 में काम करता है:
अपनी फ़ाइल सार्वजनिक निर्देशिका में रखा जाता है, , अगर फ़ाइल उत्पादन वातावरण में संपत्ति पूर्व संकलन के कारण संपत्ति निर्देशिका तो अस्तित्व की जाँच में रखा गया है, एक छोटे से कठिन है
# File is stored in ./public/my_folder/picture.jpg
File.file? "#{Rails.public_path}/my_folder/picture.jpg"
हालांकि: तो अपने अस्तित्व के साथ जाँच की जा सकती। मैं निम्नलिखित दृष्टिकोण की सिफारिश:
# File is stored in ./app/assets/images/my_folder/picture.jpg
# The following helper could, for example, be placed in ./app/helpers/
def asset_exists?(path)
if Rails.configuration.assets.compile
Rails.application.precompiled_assets.include? path
else
Rails.application.assets_manifest.assets[path].present?
end
end
asset_exists? 'my_folder/picture.jpg'
'Rails.application.assets_manifest.find_sources (पथ) .present?' – m1l05z
क्या अच्छा होगा बंदर पैच IMAGE_TAG है कि आप के लिए ऐसा किया है ताकि आप प्रत्येक छवि के लिए इस दोहराने के लिए नहीं था के लिए है। इसलिए अगर यह करता है तो फाइल मौजूद है, सुपर। अन्यथा noimg.gif के साथ सुपर। या अपना स्वयं का सहायक image_or_default (img, विकल्प) – Yule
बनाएं, मैं बाद में ऐसा करने की अनुशंसा करता हूं क्योंकि मुझे मौजूदा ढांचे के तरीकों को संशोधित करने से नफरत है। –
@BrianMaltzan तो मैं पथ जानने के लिए एक डीबी का उपयोग करने का सुझाव दूंगा। यह वही है जो मैं बड़े पैमाने पर वेब अनुप्रयोगों के साथ करता हूं जिन्हें सीडीएन की आवश्यकता होती है। –