Если вы хотите добавить JavaScript перед загрузкой страницы вообще - т.е. не через Ajax - тогда нет особой причины, по которой вы не могли бы просто создать частичку _javascript.html.erb
, содержащую теги сценария, а затем выполнить на ваш взгляд следующее:
<%= render 'javascript' %>
Код в _javascript.html.erb
будет иметь доступ к переменным экземпляра, установленным в вашем контроллере, и вы можете записать его так же, как файл .js.erb
.
(В качестве альтернативы вы можете использовать <%= yield :head %>
в разделе <head>
вашего файла макета и затем <content_for :head do %><%= render 'javascript' %><% end %>
в ваших представлениях, если вы хотите, чтобы скрипт был в <head>
.)
Если вы хотите запустить JavaScript на странице, следующей за Ajax-запросом, тогда просто вставьте код в файл my_action.js.erb
и, если потребуется, интерполируйте <%= @my_instance_variable.value %>
- полученный код будет запущен на вашей странице после запрос заканчивается.