我花了最后几个小时研究这个小谜。
我正在向我的(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不“接受”此代码,并且自动完成功能不起作用。
但是,如果我跳过红宝石中的价值构成,只是这样写:
<% country_company_name = "uk_company_name" %>
<script>
$("#<%= country_company_name %>").autocomplete({
source: function(request, response) {
然后JS接受代码,一切运行顺利。
我正在拔头发,无法找出为什么在JS中不接受ruby变量的值作为标识。