Rails: генерировать файл .js во время выполнения - PullRequest
1 голос
/ 05 апреля 2010

В моей папке public/javascript есть файл .js, я хочу включить динамически генерируемое значение в этот файл.

Возможно ли динамически генерировать файл .js, что-то вроде public/javascript/my_javascript.js.erb

Спасибо

Ответы [ 3 ]

7 голосов
/ 06 апреля 2010

Нет, не в / public. Но вы можете сгенерировать файл js из стандартного действия Rails, если хотите. Я бы не рекомендовал это, потому что смешивание бэкенда с кодом javascript - это один из самых быстрых способов создания неуправляемого и запутанного приложения.

Лучшим решением может быть рендеринг тега script в макете (выше js-вкл.) Для динамической установки переменной js. Затем используйте MY_VAR везде, где это необходимо в js.

<% javascript_tag do -%>
var MY_VAR = '<%= value_of_my_var || "defaultVal" %>';
<% end -%>
4 голосов
/ 06 апреля 2010

Как насчет контроллера javascript, как подробно описано в этом Railscast:

http://railscasts.com/episodes/88-dynamic-select-menus

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

Вы можете сохранить имеющийся у меня javascript, сохранив переменную rails в переменной js в динамическом файле, пока загрузка страницы завершена.

2 голосов
/ 06 апреля 2010

Да, не делайте этого, вам гораздо лучше сохранять статичность кода и использовать рельсы для генерации данных, скажем, в форме JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...