2

我正在尝试在 Ryan Bates Railscast nbr 258 之后将 tokeninput 集成到我的小 Rails 应用程序中。

所以,

我在 vendor 目录中添加了 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 文件。

任何帮助,欢迎提出建议!

4

1 回答 1

1

总结一下:

我遇到的问题是由于我曾经预编译了我的资产,然后决定即时编译:

  • 在开发模式下调试并不方便
  • Heroku 在推送代码时自动管理预编译

预编译在我的公用文件夹中创建了资产的缩小版本。

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

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

于 2013-10-10T06:53:14.007 回答