2012-09-21 24 views
7

He estado usando relacional columna vertebral (https://github.com/PaulUithol/Backbone-relational) para construir mi aplicación porque no tengo un modelo (habitación) con un montón de otros modelos que se adjuntan: tieneBackbone relacional - no puede crear una instancia más de una ,,,

  • habitación muchos comentan
  • sitio pertenece Ubicación

Como se puede ver en this issue sigo obteniendo el error

Error: Cannot instantiate more than one Backbone.RelationalModel with the same id per type

Siempre que cambie Ver o volver a cargar una Colección.

Ahora sé que hay un hilo here donde sugieren usar findOrCreate pero no estoy accediendo a los modelos individualmente, sino que estoy usando Collection.fetch. ¿Hay alguna forma de solucionar este problema?

+0

tuve ese problema ... No knnow por qué, pero yo borrado la relación inversa y resolver problemas por el momento ... Ahh –

+0

. No configurar las relaciones inversas ... – GTF

+0

Tome un vistazo a esto: http://stackoverflow.com/questions/12224122/backbone-relational-cannot-instantiate-two-relationalmodel-objects#answer- 12224192 – macool

Respuesta

0

tuve un problema similar y que resultamos que se tiene que inicializar el modelo con la función:

model: -> 

    return new Project.Models.ModelName() 

Cuando require_tree. en application.js, los archivos del modelo se cargan después de los archivos de la colección (orden alfabético). El ajuste del modelo con la función espera hasta que se ejecute la aplicación.

+0

No estoy muy seguro de lo que quieres decir ... ¿Quieres decir que antes de usar 'Collection.fetch()', primero debería crear una instancia de un modelo? – GTF

1

Tuve un problema similar, lo arreglé cambiando a las asociaciones de Backbone.

https://github.com/dhruvaray/backbone-associations

La interfaz es casi exactamente el mismo con sólo unas pocas diferencias menores por lo que transferir debe ser bastante simple.

2

con backbone-relational puede obtener o crear objetos de la tienda relacional. Usar esto para crear objetos relacionales:

this.model = someModel.findOrCreate({id: 123}) 

Con esto se creará nuevo objeto o conseguir uno ya existente en la tienda relacional.

http://backbonerelational.org/#RelationalModel-findOrCreate

+1

Esto funcionaría, pero las colecciones están obteniendo dinámicamente los modelos. – GTF

Cuestiones relacionadas