получите скрипт-помощник drop_receiving_element, чтобы не генерировать теги "<script>" - PullRequest
1 голос
/ 25 ноября 2008

Есть ли способ заставить drop_receiving_element не генерировать "// ..

Ответы [ 2 ]

1 голос
/ 25 ноября 2008

Код для drop_receiving_element:

def drop_receiving_element(element_id, options = {})
  javascript_tag(drop_receiving_element_js(element_id, options).chop!)
end

javascript_tag - это то, что добавляет теги сценария, так что похоже, что вы должны просто оставить их и ввести это сами.

drop_receiving_element_js(element_id, options).chop!

Примечание: это может быть приватный метод, в этом случае просто используйте

send(:drop_receiving_element_js, element_id, options).chop!
0 голосов
/ 26 ноября 2008

Я не уверен, что вы хотите достичь (работа помощников сценариев - это для написания сценариев в тегах). Но если вам нужно разместить код в другом месте, например, внизу страницы, поскольку последняя загрузка javascript заставляет страницу отображаться быстрее, вы можете использовать content_for.

<% content_for :inline_javascript do %>
   <%# Script helpers here %>
<% end %>

затем внизу (или там, где вы хотите), вы помещаете эту строку:

<%# Include tags for other Js code the inline scripts rely on above here %>
<%= yield :inline_javascript %>

Это не работает для асинхронного контента (ajax), но, с другой стороны, другой скрипт, который уже включен, уже загружается при обновлении страницы с контентом ajax.

(Вы можете написать своего собственного помощника, который, в зависимости от типа запроса, использует переменную content_for или записывает встроенный тег script. Я уже делал один раньше, я могу попробовать найти его, если хотите)

...