rails:rails-on-rails gem-

尝试跟随Ryan Bates Backbone.js教程构建一个抽奖应用程序,但我已经遇到了第一段代码的问题。 在application.js的init函数中,他初始化了Raffler路由的新实例,它应该触发警报“主页”,但是我在Firebug中遇到以下错误,我不明白

entries.js:5Uncaught ReferenceError: Raffler is not defined entry.js:15Uncaught ReferenceError: Backbone is not defined entries.js:23Uncaught ReferenceError: Backbone is not defined index.js:17Uncaught ReferenceError: Backbone is not defined application.js:7Uncaught SyntaxError: Invalid regular expression: missing / raffler.js:9Uncaught TypeError: undefined is not a function 

我有什么想法可以解决这个问题?

Java脚本/ raffler / application.js中

 window.Raffler = Models: {} Collections: {} Views: {} Routers: {} init: -> new Raffler.Routers.Entries() Backbone.history.start() $(document).ready -> Raffler.init() 

路由器/ entries.js

 class Raffler.Routers.Entries extends Backbone.Router routes: '': 'index' index: -> alert "home page" 

更新

我运行发生器后//= require_tree . 在需要jquery_ujs之后,我发现(我认为)是导致一些问题的原因。 但是,我现在把它移到了底部,我仍然得到这个错误

 Raffler.Routers.Entries is not a constructor [Break On This Error] new Raffler.Routers.Entries(); 

的application.js

  //= require jquery //= require jquery_ujs //= require underscore //= require backbone // //= require .//raffler // //= require_tree ../templates/ //= require_tree .//models //= require_tree .//collections //= require_tree .//views //= require_tree .//routers //= require_tree . 

我遇到了同样的问题。 对我来说,解决方案是删除线

//= require_tree .

来自application.js文件,因为这一行在下划线和backbonejs的行之前。

我找到了其他有同样问题然后让它上class的人。 我将他的代码(与我的代码完全相同)复制到我的文件中,现在我的工作了。 不知道为什么

 window.Raffler = Models: {} Collections: {} Views: {} Routers: {} init: -> new Raffler.Routers.Entries() Backbone.history.start() $(document).ready -> Raffler.init()