如何将字符串数组转换为Rails/JavaScript文件中的选择下拉菜单?

如何将字符串数组转换为Rails/JavaScript文件中的选择下拉菜单?,javascript,jquery,ruby-on-rails,ruby,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ruby,Ruby On Rails 4,我有一个菜单,在其中我选择一个时间段,并调用一个JavaScript函数 $('#timeSlotSelect').on('change', function(event) { alert($(this).val()); var time_slot = $(this).val(); var i = time_slot.indexOf(' '); var dayFiltered = time_slot.substring(0, i); $.ajax({url: "/acti

我有一个菜单,在其中我选择一个时间段,并调用一个JavaScript函数

$('#timeSlotSelect').on('change', function(event) {
  alert($(this).val());

  var time_slot = $(this).val();
  var i = time_slot.indexOf(' ');
  var dayFiltered = time_slot.substring(0, i);

  $.ajax({url: "/activities/get_valid_date_range", 
    data: {day: dayFiltered}, 
    type: 'POST'
  });
})
它接收所选值并将其传递到控制器方法中,该方法将为新的选择下拉菜单准备所需的数组。我的目标是用所选时间段的可用日期列表填充这个新的select下拉列表

被调用的控制器方法是:

def get_valid_date_range
    respond_to do |format|          
        day = params[:day] # day param from javascript file
        availableDates = valid_date_range(day) # logic that works out available dates
        format.js { render :available_dates_select, :locals => { :dates => availableDates} }
    end
end
可用的_dates_select.js.erb文件为:

$(function() {
    alert("test")
    $("div#jo").html("<%= escape_javascript dates.to_json %>")
});
我需要做的是将这个数组转换成一个select下拉列表。在JavaScript文件中,然后将选择菜单添加到视图中,而不是原始数组

我尝试了这里的一些代码片段,但似乎都不起作用

如果您能举个例子学习,我将不胜感激。

试试看

$("div#jo").html("<%= escape_javascript select_tag(:dates, options_for_select(dates)) %>")

这将创建一个空的选择下拉框。$divjo.html“选择日期”%>为我工作。你说得对。我很少使用select_标记,所以我总是忘记您需要使用options_for_select手动构建选项。我建议不要尝试混合使用JavaScript和ERB。要么将HTML呈现为display:none在ERB中,要么呈现为JSON,并让JavaScript呈现HTML。关注点分离。
$("div#jo").html("<%= escape_javascript select_tag(:dates, options_for_select(dates)) %>")