загрузка, неравнодушная с jQuery и направляющими

Мне любопытно на предмет какой лучший способ загрузить направляющие, неравнодушные с jQuery. До сих пор я попробовал решение, не работающее:

$('#imagecontent').load('/newsletters/_image_gallery.html.erb', function() {
alert('Load was performed.');
});

Лучшее решение состоит в том, чтобы создать отдельное действие и/или контроллер для этого и настроить маршрут? Я спрашиваю, потому что создание первого решения работать кажется более легким, возможно, не таким образом успокоительный.

Спасибо.

9
задан alex.zherdev 9 February 2010 в 14:48
поделиться

3 ответа

Причина, по которой этот код не работает, заключается в том, что рельсы не выставляют файлы просмотра наружу. Чтобы добиться желаемого, вам понадобится действие, которое бы визуализировало это частично:

def image_gallery
  render :partial => "image_gallery"
end

Также есть плагин, называемый jRails, который заменяет стандартные помощники ajax (использующие прототип) на эквивалентные jquery-ориентированные. В вашем случае вы будете использовать что-то вроде

<%= remote_function(:update => "imagecontent", :url => "/newsletters/image_gallery") %>

И даже больше, в Rails 3 он вам не понадобится. Смотрите эту ссылку .

3
ответ дан 4 December 2019 в 10:32
поделиться

У вас не должно быть доступа к файлам шаблонов (.erb) из HTTP-запросов, это очень плохая практика. Я предлагаю вам разместить их за пределами пути к вашим веб-серверам и получить к ним доступ только через ваше приложение.

Я не уверен насчет Rails, но полагаю, вам нужно создать отдельный контроллер (или что-то еще) для этого.

ИЗМЕНИТЬ это связано с тем, что файлы .erb являются встроенными файлами Ruby, и если вы попытаетесь запросить их, вы получите все нежелательные данные, например <% = page_title%> , которые вы не делаете » не хочу показывать пользователям. Поэтому вам необходимо передать эти файлы .erb через ваше приложение Rails, чтобы они правильно интерпретировались в HTML.

8
ответ дан 4 December 2019 в 10:32
поделиться
3
ответ дан 4 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: