是否可以将 Javascript 和 erb 交织在一起?

Is it possible to intertwine Javascript and erb?

我很想这样做,但显然这是错误的。有什么方法可以让 ajax return 'cnut' 进入 erb?

processResults: function (data, params) { 
        // parse the results into the format expected by Select2
        // since we are using custom formatting functions we do not need to
        // alter the remote JSON data, except to indicate that infinite
        // scrolling can be used
        params.page = params.page || 1;
        return {
          results: $.map(data, function(cnut) {
              <% asdf = BandRole.where(band_id: cnut.id).first %>
              <% member = Fan.find(asdf.fan_id) %>
              var band_member = <% member.name %>
              return { 
                text: cnut.name + ", " + cnut.city + " (" + band_member + ")",
                id: cnut.id,
              };  
          }),
          pagination: {
            more: (params.page * 30) < data.total_count
          }
        };
      },

如果你告诉 Rails 渲染 JS 而不是 JSON,你就可以。

在你的控制器中设置你的 respond_to 块,如下所示:

respond_to do |format|
  format.html
  format.js { render :your_view }
end

然后创建一个名为 your_view.js.erb 的视图。您可以像使用普通 HTML 视图一样使用它,除了您可以像在示例中那样将 JavaScript 和 Ruby 放入此文件中。但是,这是在响应中发送回浏览器的 JS,而不是处理响应的 JS。我希望这有帮助。