我正在尝试按照 Ryan Bates Railscast nbr 258 将 tokeninput 集成到我的小 Rails 应用程序中。
因此,
我在供应商目录中添加了 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 文件似乎已由 Assets 管道正确加载。
欢迎任何帮助、建议!
最佳答案
总结一下:
我遇到的问题是由于我曾经预编译了我的 Assets ,然后决定即时编译:
- 在开发模式下调试不方便
- Heroku 在推送代码时自动管理预编译
预编译在我的公共(public)文件夹中创建了 Assets 的缩小版本。
当我运行我的网站时,所有 javascript 文件都会加载两次:一次来自公共(public)文件夹,一次来自正常流程。
我刚刚删除了公共(public)文件夹中的内容,它解决了我的问题。
关于jquery - Rails jquery tokeninput 返回 "not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17693698/