我使用rails-backbone gem并生成了Backbone模型。该模型包含paramRoot:
属性。我假设它以某种方式告诉Backbone如何连接到相应的Rails模型,但我找不到任何关于它的文档。
paramRoot
实际上做了什么?
答案 0 :(得分:12)
Backbone-rails不记录paramRoot
。我想你应该将生成器用于build your models:
class <%= model_namespace %> extends Backbone.Model
paramRoot: '<%= singular_table_name %>'
#...
并盲目地按照你的说法去做。
如果你想知道它的作用,你必须阅读源(像往常一样)。 Backbone-rails中唯一使用paramRoot
的东西是它们替代标准Backbone.sync
;他们的替换包含this:
if(model.paramRoot) {
data[model.paramRoot] = model.toJSON();
} else {
data = model.toJSON();
}
所有这一切都是将模型的序列化属性从标准{attr1: v1, attr2: v2, ...}
Backbone形式更改为Rails想要的{ model_name: { attr1: v1, ... } }
形式;然后你可以在你的Rails控制器中查看params[:model_name]
,而不只是查看params
。