所以我有一个包含嵌套资源的Rails 3.1
应用:
resources :projects do
resources :todos do
resources :tasks
end
end
我定义了backbone.js
模型,如:
var Task = Backbone.Model.extend({url:'/projects/1/todos/20/tasks'})
我现在可以简单地创建一个新的嵌套任务:
task.set({description:"This is backbone.js created task!!!"})
task.save()
这非常棒。
但请注意,我对project/:project_id/todos/:todo_id/tasks
网址进行了硬编码。
当然,我可以动态地生成它,但我想知道是否有更好的方法。
感谢您的任何建议。
答案 0 :(得分:5)
Backbone.Model.extend
用于创建子类,而不是对象,因此创建一个带有静态URL的新类,然后实例化它似乎是一种特别繁琐的方法。
对于这样的问题,我非常喜欢Backbone Relational,它允许你在Backbone中定义一组并行结构作为类,并让Project
对象上传自己的所有关联的ToDo
和Task
个对象。您只需将Project
作为RESTful“粗略文档”发送给客户端并从客户端接收。有关REST的讨论,请参阅The Richardson Maturity Model,因为backbone完全支持此特定模型。
另一种方法是SOAPly将更改消息作为更新发送,但这需要对Backbone的内部同步方法进行一些黑客攻击和理解。