Как определить переменные GON в представлении рельсы (тонкие файлы)?
У меня есть несколько представлений, где мне нужно передать массивы ruby /rails в код javascript/jquery в моем проекте. Я использую gon gem, который прекрасно работает, когда я определяю gon-переменные в коде контроллера, но как я могу назначить переменную в коде представления (тонкий файл)?
Например, если у нас есть следующий код в контроллере:
gon.test_var = "hello there"
а затем попробуйте предупредить об этом в моем коде jquery/javascript, как показано ниже:
$(document).ready(function() {
alert(gon.test_var);
});
Работает нормально.
Как я могу добиться того же самого путем определения переменной в файле представления (я должен иметь возможность определить gon.test_var в файле Slim)?
Изменить: Обратите внимание, что значения, которые мы присваиваем переменной, являются переменными ruby, а не статической строкой или числом.
2 ответа
Официальный способ — использовать глобальные настройки Gon:
- Gon.global.push test_var: your_value
и используйте глобальные данные:
gon.global.test_var
другой способ — передать gon как переменную экземпляра. Итак, в вашем контроллере ваше назначение
@gon = gon
тогда, на ваш взгляд, вы можете использовать
- @gon.push test_var: your_value
- @gon.test_var2 = your_value # old syntax
Задавать:
- name = 'smth'
= current_gon.gon["name"] = name
Получить:
= current_gon.gon["name"]