Ruby on rails 在Ember中创建新路线视图的问题

Ruby on rails 在Ember中创建新路线视图的问题,ruby-on-rails,postgresql,ember.js,Ruby On Rails,Postgresql,Ember.js,我一直遵循Vic Ramon的Ember教程(我是新来的),并且我能够成功地创建CRUD界面,该界面可以回溯到1 postgres表。 我想扩展本教程,通过rails使用2个不同的postgres表。这是路由器(名称很好用,状态不好): 控制器: App.StatesController = Ember.ArrayController.extend 路线: App.StatesRoute = Ember.Route.extend model: -> @store.find 'st

我一直遵循Vic Ramon的Ember教程(我是新来的),并且我能够成功地创建CRUD界面,该界面可以回溯到1 postgres表。

我想扩展本教程,通过rails使用2个不同的postgres表。这是路由器(名称很好用,状态不好):

控制器:

App.StatesController = Ember.ArrayController.extend
路线:

App.StatesRoute = Ember.Route.extend

  model: -> @store.find 'state'
型号:

App.State = DS.Model.extend
  calc_num:         DS.attr 'number'
  energy_list:      DS.attr 'string'
  dos_list:         DS.attr 'string'
  atom_subset:      DS.attr 'string'
  orbital_subset:   DS.attr 'number'
  fermi_level:      DS.attr 'number'
  core_level:       DS.attr 'number'
  elec_occ_list:    DS.attr 'string'
  elec_energy_list: DS.attr 'string'
模板:

article#states
h1 DOS States
ul
  each state in controller
    link-to 'state' state tagName="li"
      state.calc_num
当我运行该网站时,出现以下错误:

>   Error while loading route: TypeError: undefined is not a function
>     at instantiate (http://lh:3000/assets/ember.js?body=1:11474:26)
>     at lookup (http://lh:3000/assets/ember.js?body=1:11340:19)
>     at Object.Container.lookup (http://lh:3000/assets/ember.js?body=1:11019:16)
>     at Ember.Route.Ember.Object.extend.controllerFor (http://lh:3000/assets/ember.js?body=1:36763:28)
>     at Ember.Route.Ember.Object.extend.setup (http://lh:3000/assets/ember.js?body=1:36302:27)
>     at handlerEnteredOrUpdated (http://lh:3000/assets/ember.js?body=1:33569:36)
>     at http://lh:3000/assets/ember.js?body=1:33538:18
>     at forEach (http://lh:3000/assets/ember.js?body=1:34579:54)
>     at setupContexts (http://lh:3000/assets/ember.js?body=1:33537:9)
>     at finalizeTransition (http://lh:3000/assets/ember.js?body=1:33711:9)

你认为发生了什么事?我可以在余烬检查器中看出,数据似乎是为州加载的。非常感谢

Matthew Blancarte对此给出了解决方案,但诀窍是在声明控制器后始终添加括号,即使在coffeescript中也是为了安全

App.StatesController = Ember.ArrayController.extend({})

您可能需要使用括号来调用控制器扩展,例如:
App.StatesController=Ember.ArrayController.extend({})
略过您的问题后,只需猜测一下。您太棒了,就是这样!奇怪的是,他们没有让我对我在教程中添加的第一个表执行此操作,但我仍然可以获得显示的数据。很高兴知道我应该总是在上面加上括号。谢谢
App.StatesController = Ember.ArrayController.extend({})