ERB не выполняется в скриптах JavaScript
-
27-09-2019 - |
Вопрос
У меня есть выбор ввода на моей странице. Этот выберите входные дисплеи / скрывают поля в форме. Это все работает нормально. Но проблема в том, что если я отправлю форму и не имею некоторых необходимых полей, она не устанавливает выбранный в правильное значение после этого. Я просто не могу получить встроенный Ruby на работу! Он постоянно избегает всего ... вот мой код:
$(document).ready(function() {
$("#profile_sex").val('<%= @profile.sex %>')
$("#profile_sex").change(function(){
($(this).val() == "Frau") ? $('#form-female').show() : $('#form-female').hide();
($(this).val() == "Mann") ? $('#form-male').show() : $('#form-male').hide();
if ($(this).val() == "Paar") {
$('#form-female').show();
$('#form-male').show();
}
});
});
Почему эта работа ??? Я не получаю никакой ошибки или что-то, что он просто устанавливает значение «<% = @ Profile.sex =>», я был погибшим и поиске о переполнении стека и Railscasts, Rails API, все. Я серьезно запутался ...
Спасибо за вашу помощь.
Решение
Попробуйте удалить отметки клещей вокруг '<%= @profile.sex %>'
.
Если вам нужны отметки галочек вокруг вашего значения, попробуйте ' + <%= @profile.sex %> + '
Другие советы
Ваш сценарий JS не выполняет встроенный код Ruby. Вот описание, как разрешить это:
Вы можете взглянуть на jsvars.. Отказ Я использую его в одном из моих проектов, и это довольно здорово. Вы можете установить ваши переменные JavaScript прямо в контроллере, присваивая HASH:
jsvars[:profile_sex] = @profile.sex
Тогда вы могли бы сделать $ ("profile_sex"). val (profile_sex); в вашем скрипте. Это может решить вашу проблему и сделать все красивее одновременно.
Просто мысль!