Последние пару часов я потратил на эту маленькую загадку.
Я перехожу к моему (Rails) представлению переменной с именем type
, которая имеет одно из следующих значений:
- us
- uk
- fr
- es
- it
- ...
и в ruby я создаю из него идентификатор, который в дальнейшем будет использоваться в JS, поэтому:
<% country_company_name = "#{type}_company_name" %>
, а затем я передаю его в JS, поэтому код выглядит следующим образом:
<% country_company_name = "#{type}_company_name" %>
<script>
$("#<%= country_company_name %>").autocomplete({
source: function(request, response) {
Код выше генерирует это:
$("#uk_company_name")...
Хорошо выглядит - именно то, что мне нужно;однако JS не «принимает» этот код, и автозаполнение не работает.
Однако, если я пропущу композицию значений в ruby и просто напишу:
<% country_company_name = "uk_company_name" %>
<script>
$("#<%= country_company_name %>").autocomplete({
source: function(request, response) {
затемJS принимает код и все работает гладко.
Я дергаю себя за волосы и не могу понять, почему значение из переменной ruby не принимается в JS в качестве идентификации.
РЕДАКТИРОВАТЬ: Добавление изображения того, как идентификатор отображается в DOM (все выглядит хорошо):