Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rails jquery tokeninput返回;“不是一个函数”;_Jquery_Ruby On Rails_Jquery Tokeninput - Fatal编程技术网

rails jquery tokeninput返回;“不是一个函数”;

rails jquery tokeninput返回;“不是一个函数”;,jquery,ruby-on-rails,jquery-tokeninput,Jquery,Ruby On Rails,Jquery Tokeninput,我正试图在我的小rails应用程序中集成tokeninput,遵循Ryan Bates Railscast nbr 258 所以, 我在vendors目录中添加了tokeninput文件 然后更改application.js文件: // //= require jquery //= require jquery_ujs //= require jquery.tokeninput //= require bootstrap //= require chosen-jquery //= require

我正试图在我的小rails应用程序中集成tokeninput,遵循Ryan Bates Railscast nbr 258

所以,

我在vendors目录中添加了tokeninput文件

然后更改application.js文件:

//
//= require jquery
//= require jquery_ujs
//= require jquery.tokeninput
//= require bootstrap
//= require chosen-jquery
//= require jquery_nested_form
//= require bootstrap-datetimepicker.min
//= require_tree .
然后我在categories.js.coffee文件中添加了这段代码

jQuery ->
  $('#company_category_list').tokenInput('/categories.json',
    theme: 'facebook'
    prePopulate: $('#company_category_list').data('load')
  )
当我转到表单时,浏览器控制台会显示:

TypeError: $(...).tokenInput is not a function
[Break On This Error]   

prePopulate: $('#company_category_list').data('load')
我已经找了几个小时了,但是我没有找到这个错误的原因。资产管道似乎正确加载了jquery.tokeninput文件

任何帮助,建议欢迎

总结一下:

我遇到的问题是因为我曾经预编译过我的资产,然后决定动态编译:

  • 在开发模式下进行调试并不方便
  • Heroku在推送代码时自动管理预编译
预编译在我的公用文件夹中创建了资产的精简版本

当我运行我的网站时,所有的javascript文件都被加载了两次:一次是从公用文件夹加载,一次是从正常流加载


我刚刚删除了公用文件夹中的内容,它解决了我的问题。

很抱歉,我无法帮助解决,但我昨天晚上也遇到了同样的问题,我可以解决它。由于Rails预编译的资产,Jquery加载了两次。也许你可以检查jquery的双重加载…谢谢,我也用这种方式解决了。你好,你能解释一下你是如何解决这个问题的吗?您是如何防止jquery加载两次的?是的,我不再在dev中预编译了,并且从公用文件夹中删除了预编译的资产。您可以将Heroku设置为每次按下时自动预编译。事实上,Heroku是默认的。谢谢您的跟进!我不能删除我的答案,因为它已经被接受,但我已经把你的投了赞成票,并在我的答案中添加了一条评论,以确保任何需要这个答案的人都能看到你的阐述。