Rails 3.1.3 jquery ajax不在单独的.js文件中工作

时间:2012-01-15 16:45:20

标签: jquery ruby-on-rails assets

我对Rails比较陌生。我有以下jquery代码:

    //used in my.html.erb
    $('#category_id').change( function() {
      var theURL = "/requests/byCategory/" + $('#category_id').val()
      $.ajax({url: theURL,
        success: function(data){
         $('#displaySelection').html(data);
        }
      })
    });

当我将它嵌套在erb中的脚本标签中时,它可以工作。当我将上面的jquery代码移动到app / assets / javascripts / my.js时,它不起作用。 app / assets / javascripts / application.js看起来像:

    //= require jquery
    //= require jquery_ujs
    //= require_tree .

显然,我没有正确理解资产管道。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您是否已将更改回调嵌入$(document).ready

如果不是,它不应该是资产管道的问题,而是DOM加载的问题。

'应用程序/资产/ Javascript角/ my.js'

$(document).ready(function () {
  $('#category_id').change( function() {
    var theURL = "/requests/byCategory/" + $('#category_id').val()
    $.ajax({url: theURL,
      success: function(data){
       $('#displaySelection').html(data);
      }
    });
  });
});

'应用程序/资产/ Javascript角/的application.js'

//= require jquery
//= require jquery_ujs
//= require_tree .