Javascript RubyonRails中的动态下拉选择菜单

Javascript RubyonRails中的动态下拉选择菜单,javascript,ruby-on-rails,Javascript,Ruby On Rails,我试图在RubyonRails中实现一个动态下拉菜单,显示州和相应的城市 我收到了这个错误(在/home/yash/socialnw20/app/assets/javascripts/dynamic_cities.js.erb中): Javascript文件: var cities = new Array(); <% for city in @cities do %> cities.push(new Array(<%= city.states_id %>, '<

我试图在RubyonRails中实现一个动态下拉菜单,显示州和相应的城市

我收到了这个错误(在
/home/yash/socialnw20/app/assets/javascripts/dynamic_cities.js.erb
中):

Javascript文件:

var cities = new Array();

<% for city in @cities do %>
  cities.push(new Array(<%= city.states_id %>, '<%=h city.name %>', <%= city.id %>));
<% end %>

function stateSelected() {
  states.id = $('states.id').getValue();
  options = $('city.id').options;
  options.length = 1;
  cities.ready(function(city) {
    if (city[0] == states.id) {
      options[options.length] = new Option(city[1], city[2]);
    }
  }); 
  if (options.length == 1) {
    $('city.field').hide();
  } 
  else {
    $('city.field').show();
  }
}

document.observe('dom:loaded', function() {
  $('city.field').hide();
  $('states.id').observe('change', stateSelected);
});
var cities=new Array();
城市。推送(新数组(,'',);
函数stateSelected(){
states.id=$('states.id').getValue();
选项=$('city.id')。选项;
选项1.length=1;
城市。就绪(功能(城市){
if(城市[0]==州id){
选项[options.length]=新选项(城市[1],城市[2]);
}
}); 
如果(options.length==1){
$('city.field').hide();
} 
否则{
$('city.field').show();
}
}
document.observe('dom:loaded',function()){
$('city.field').hide();
$('states.id')。观察('change',stateSelected);
});

如何定义控制器?该错误是因为您的@cities its empty.class JavascriptsControllervar cities = new Array(); <% for city in @cities do %> cities.push(new Array(<%= city.states_id %>, '<%=h city.name %>', <%= city.id %>)); <% end %> function stateSelected() { states.id = $('states.id').getValue(); options = $('city.id').options; options.length = 1; cities.ready(function(city) { if (city[0] == states.id) { options[options.length] = new Option(city[1], city[2]); } }); if (options.length == 1) { $('city.field').hide(); } else { $('city.field').show(); } } document.observe('dom:loaded', function() { $('city.field').hide(); $('states.id').observe('change', stateSelected); });