2012-04-21 11 views
9

मैं इस उत्तर को खोज और खोज रहा हूं। लेकिन मैं अब यह काम नहीं कर सकता, कई घंटों। कृपया मेरी मदद करें।रेल ऐप में संपत्ति/छवियों फ़ोल्डर से छवि कैसे प्राप्त करें

मैं अपने रेल app की एक वेबपेज हूँ, मैं मेरी संपत्ति फ़ोल्डर @app/assets/images/rails.png.

में बचाया मैं निम्नलिखित समारोह है कि एचटीएमएल निर्माण के साथ एक जावास्क्रिप्ट फ़ाइल है एक छवि दिखाने के लिए कोशिश कर रहा हूँ। इस फ़ंक्शन के अंदर, मैं छवि को लिंक पास करना चाहता हूं। यह वह कोड है जो मेरे पास वर्तमान में है।

function addToInfoWindow(infoWindowContent) 
{ 

infoWindowString = '<div class="infoWindow">'+ 
**'<img src="/assets/images/rails.png" />'+** 
'<p>'+infoWindowContent+'</p>'+ 
'<p><a href="http://www.google.com">See here</a></p>'+ 
'<p><a href="http://www.google.com">Upload a photo</a></p>'+ 
'</div>'; 
infoWindow.setContent(infoWindowString); 

} 

जैसा कि आप कोड में ऊपर देख सकते हैं बोल्ड हिस्सा समस्या है। मैंने उस छवि फ़ाइल तक पहुंचने के लिए यूआरएल तारों के कई अलग-अलग संयोजनों की कोशिश की है लेकिन छवि HTML तत्व में दिखाई नहीं दे रही है।

मैंने देखा और देखा, image_url('rails.png') जैसे रेल सहायक सहायक कार्यों का प्रयास किया। लेकिन मुझे उन्हें गलत जगह पर रखना होगा। क्या कोई मेरी सहायता कर सकता है। कृपया मुझे दिखाएं कि, उपरोक्त कोड में मुझे कौन सा फ़ंक्शन /assets/images/rails.png पर लाने के लिए जोड़ने की आवश्यकता है ताकि यह यूआरएल ऊपर दिए गए हाइलाइट किए गए भाग में रखा गया हो और यह मेरे दृश्य में दिखाया गया हो।

उत्तर

23

यदि आप आप रेल सहायकों उपयोग करने के लिए आप की जरूरत है चाहता हूँ "उन्नयन "आपकी जावास्क्रिप्ट फाइलें erb करने के लिए।

बस उन्हें whatever.js से whatever.js.erb का नाम बदलें। अब फ़ाइल वितरित करने से पहले सभी एरब कोड (<% = और%> के बीच सामान) निष्पादित करेंगे।

तो तुम इस तरह कर सकते हैं:

<img src="<%= asset_path('rails.png') %>" /> 

More information, 2.2.3 देखें।

+1

यह काम किया। वाह। मैंने सभी प्रकार की चीजों की कोशिश करने में 4 घंटे बिताए और इसके साथ ही फाइल के पास विस्तार नहीं था !! आपकी मदद के लिए वास्तव में बहुत कुछ धन्यवाद – banditKing

+1

यह हमेशा ऐसा ही है: पी ग्लेड मैं मदद कर सकता हूं। – klump

+1

ध्यान रखें कि यदि आप कॉफ़ीस्क्रिप्ट का उपयोग कर रहे हैं, तो erb का उपयोग करने के लिए एक्सटेंशन '.js.coffee'' .js.cofee.erb' नहीं है। क्रिया स्वचालित है। मुझे पता है, यह अजीब है। लेकिन इस तरह यह काम करता है। जानकारी के इस बिट को लोगों को कुछ समय बचा लेना चाहिए। – ahnbizcad

3

आप शुद्ध जावास्क्रिप्ट में IMAGE_TAG की तरह रेल सहायकों का उपयोग करने में सक्षम नहीं होगा - .erb संलग्न करें और asset_path का उपयोग करें (क्लंप के जवाब देखें)

संबंधित मुद्दे