javascript - 如何设置模型的加载顺序以避免关系错误?

标签 javascript ruby-on-rails model ember.js directory-structure

我有一个用于模型文件的文件夹 models。每个文件包含一个模型。模型之间有很多关系(hasMany,belongsTo)。如果我想设置 hasMany 关系,那么我需要已经定义了子模型,否则我会得到一个错误:

Error: assertion failed: The first argument DS.belongsTo must be a model type or string, like DS.belongsTo(App.Person)

因为模型(上例中的 App.Person)还没有定义。

这是关系定义之一:

App.Seat = DS.Model.extend(
  number: DS.attr('number')
  tour: DS.belongsTo(App.Tour)
)

包含的模型文件夹如下:

//= require_tree ./models

我知道在一个文件中定义所有模型(或至少相互关联的模型)的解决方案。

问题:是否有任何其他解决方案允许将所有模型保存在单独的文件中?

最佳答案

我找到了一个非常简单的解决方案:将所有关系定义为对象(例如 App.Tour):

App.Seat = DS.Model.extend(
  number: DS.attr('number')
  tour: DS.belongsTo(App.Tour) # <<<<<<<<<<<============ ***here***
)

但作为字符串(例如 "App.Tour"),所以只需将其放在引号中:

App.Seat = DS.Model.extend(
      number: DS.attr('number')
      tour: DS.belongsTo("App.Tour") # <<<<<<<<<<<============ ***here***
    )

我认为这种“解决方法”是由于 javascript 的限制。

已更新:ember.js 首选使用字符串

关于javascript - 如何设置模型的加载顺序以避免关系错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898116/

相关文章:

javascript - 使用 php 和 Jquery 数据表显示 mysql 数据库?

javascript - HTML 输出的缓存

javascript - 如何将字符串和组件作为 Prop 传递?

Mysql2::Error: 不正确的字符串值

ruby-on-rails - 如何使我的belongs_to 字段 optional ?

model - Chainlink新手疑惑

javascript - 如何在鼠标悬停在照片下方添加说明? (照片库)

ruby-on-rails - Rails Eager Loading 和 where 子句

ruby-on-rails - Ruby on Rails 中未加载自定义验证器

ruby-on-rails - bcrypt 错误 : Devise ruby 2. 0 和 rails 4.0