无法在rails上的Backbone模型上访问id?

时间:2012-12-05 20:04:01

标签: ruby-on-rails ruby-on-rails-3 backbone.js

问题: 我正在使用Backbone.js镜像Rails中的资源模型。我正在尝试将当前用户ID获取到Backbone Workshop.Models.User模型,以便我可以通过Rails用户RESTful资源将用户保存到数据库中。我无法从Currentuser模型中检索id。 ?

当我尝试在Backbone中检索当前用户模型的实例的id时,我的返回值是未定义的。我可以在服务器日志中看到提取成功,如果我将本地实例输出到日志中,我可以检查对象。我甚至可以使用控制台运行相同的代码并成功获取id。它只是在运行时。

我怀疑我应该以不同的方式配置我的模型或在我的视图中绑定一些东西。帮助

See my gist here

型号:

# singleton model gets current user

class Workshop.Models.Currentuser extends Backbone.Model
idAttribute: '_id'
urlRoot: -> '/user/currentuser/'

# classic Rails RESTful resource

class Workshop.Models.User extends Backbone.Model
urlRoot: '/users/show'

1 个答案:

答案 0 :(得分:5)

在你的要点中,你有以下代码

current_user = new Workshop.Models.Currentuser
current_user.fetch()
console.log(current_user.id)

但是,fetch是非同步的,并且在完成ajax调用之前,id将不会被填充。

试试这个(道歉,因为我的红宝石技能为零,我的咖啡因不是那么好,所以不能保证语法)

current_user.fetch({ success: -> console.log(current_user.id) });