我正在使用Ember-Rails构建一个带有Rails API的Ember前端应用程序。我一直在努力实现身份验证,我得出以下错误:
尝试按如下方式扩展路线时Cannot read property 'extend' of undefined
:
App.AdminRoute = App.AuthenticateRoute.extend({
model: function(params) {
return this.store.find('user', params.id);
},
});
我的AuthenticateRoute定义如下:
App.AuthenticateRoute = Ember.Route.extend({
//yada yada
});
我或多或少地遵循了http://www.embercasts.com/episodes/client-side-authentication-part-2
上的指南我不确定为什么这不起作用,但我注意到我的AuthenticateRoute 可以从其他路线扩展,我觉得非常奇怪。
答案 0 :(得分:2)
事实证明,正如我们大多数人所知,Ember-Rails预先编译了所有这些文件而没有看到它(使用我认为的理发宝石)。我没有想到的是,当它结合所有这些文件时,它(据我所知)将它们按字母顺序排列。因此,在AdminRoute
被声明之前,我的AuthenticateRoute
被声明为扩展AuthenticateRoute
,从而产生错误。我还不确定如何解决这个问题 -
admin_route.js
更改为zadmin_route.js
,因此它位于authenticate_route.js
之后,但出于显而易见的原因,这并不合适。 如果有人有更好的选择,请在下面发表评论,否则我会在遇到解决方案时更新此内容。