2012-04-21 6 views
9

Я искал и отвечал на этот вопрос. Но я не могу сделать эту работу несколько часов. Пожалуйста, помогите мне.Как получить изображение из папки ресурсов/изображений в приложении rails

Я веб-страница моих рельсов приложения, я пытаюсь показать изображение, сохраненное в моей папке активов @app/assets/images/rails.png.

У меня есть файла JavaScript с помощью следующей функции, которая строит HTML. Внутри этой функции я бы хотел передать ссылку на изображение. Это код, который у меня есть.

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); 

} 

Как вы можете видеть выше в коде, полужирная часть является проблемой. Я пробовал несколько различных комбинаций строк URL для доступа к этому файлу изображения, но изображение не отображается в элементе html.

Я посмотрел и посмотрел, попробовал вспомогательные функции рельсов, такие как image_url('rails.png'). Но я должен помещать их в неправильное место. Может кто-то, пожалуйста, помогите мне. Пожалуйста, покажите мне, где, какую функцию в приведенном выше коде мне нужно добавить, чтобы получить изображение по адресу /assets/images/rails.png, чтобы его URL был размещен в выделенной части выше, и это видно на мой взгляд.

ответ

23

Если вы хотите использовать Рельсы хелперы вам нужно «обновления "ваши файлы javascript для erb.

Просто переименуйте их из whatever.js в whatever.js.erb. Теперь рельсы будут выполнять весь код erb (материал между <% = и%>) перед доставкой файла.

Таким образом, вы можете сделать так:

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

More information см 2.2.3.

+1

Это сработало. Вау. Я потратил 4 часа на то, чтобы пробовать все виды вещей, и все это было только потому, что у файла не было расширения !! Большое спасибо за вашу помощь – banditKing

+1

Его всегда так: P Рад, что я мог бы помочь. – klump

+1

Имейте в виду, что если вы используете coffeescript, расширение для использования erb - '.js.coffee' не' .js.cofee.erb'. erb автоматически. Я знаю, это странно. Но так оно и работает. Этот бит информации должен спасти людей некоторое время. – ahnbizcad

3

Вы не сможете использовать рельсы хелперы, как IMAGE_TAG в чистом JavaScript - добавлять .erb и использовать asset_path (см ответ Klump в)