Backbone.js:什么是paramRoot:backbone.model中的属性?

时间:2012-11-12 17:40:26

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

我使用rails-backbone gem并生成了Backbone模型。该模型包含paramRoot:属性。我假设它以某种方式告诉Backbone如何连接到相应的Rails模型,但我找不到任何关于它的文档。

paramRoot实际上做了什么?

1 个答案:

答案 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