Есть ли способ выполнить встроенный Ruby в файле JavaScript в My / Public / Javascripts?
-
02-10-2019 - |
Вопрос
У меня есть форма с постоянно растущим количеством связанного JavaScript. В настоящее время этот JavaScript живет в моей форме вида, что в порядке, но становится все больше и начинает перегружать форму, затрудняя работу по форме.
Я хочу поставить это в отдельный файл в моем каталоге / Public / Javascripts, но много JavaScript генерируется встроенным Ruby. Этот встроенный Ruby игнорируется и передается в браузер, если я просто поставлю код здесь.
Какой лучший способ (если есть) иметь этот встроенный рубин, и JavaScript генерируется так же, как будто это было на мой взгляд?
Решение
Вы можете создавать динамические шаблоны ERB для JavaScript, но они не ходят в каталог публичных / Javascripts.
Я предлагаю вам переместить JavaScript в частичную. Создайте файл с именем _form_js.html.erb и поместите содержимое бирки сценария там. Тогда <% = Render: Partial => 'form_js'%> с вашего представления.
В качестве стороны, вполне вероятно, что вам лучше использовать полностью статический JavaScript, который идентифицирует элементы формы по их классу / идентификатору и реагирует на это, а не использовать пользовательский JavaScript для каждого элемента.
Другие советы
Вы можете создавать шаблоны RJS и группируйте свой код JavaScript в файлах RJS. Ссылаться: http://www.codyfauser.com/2005/11/20/rails-rjs-templates.