Ember 数据异步 hasMany 未在生产中加载
Ember Data async hasMany not loading in production
我的 Ember CLI 应用程序正在使用 Ember 1.10.0 和 Ember Data 1.0.0-beta.15。它还通过 ember-cli-rails
gem.
在 Rails 应用程序中 运行
我有各种关联了hasMany的模型,都标注了async: true
。
在开发中,当需要这些关联时,应用程序会向 API 发出查询以获取 hasMany 记录。查看Ember Inspector,联想是DS.PromiseManyArray.
在生产环境中,不会触发任何查询,并且关联是 DS.ManyArray。由于我的 API 为关联对象发送了一个 id 数组,因此 DS.ManyArray 中包含正确数量的项目,但 id 以外的记录属性从未加载。
我在 config/environment.js
中的开发和生产环境设置之间的唯一区别是 API 端点,并且在开发中打开了一些日志记录。相同的 DS.ActiveModelAdapter 用于所有环境。
关于为什么这种行为会在生产中改变的任何想法?
事实证明,这个问题是将预编译资产提交给项目回购的结果。因此,ruby buildpack 跳过资产编译,导致旧版本的资产支持生产实例。
解决方案是从 Rails 应用中删除 public/assets 并重新部署到 Heroku。
我的 Ember CLI 应用程序正在使用 Ember 1.10.0 和 Ember Data 1.0.0-beta.15。它还通过 ember-cli-rails
gem.
我有各种关联了hasMany的模型,都标注了async: true
。
在开发中,当需要这些关联时,应用程序会向 API 发出查询以获取 hasMany 记录。查看Ember Inspector,联想是DS.PromiseManyArray.
在生产环境中,不会触发任何查询,并且关联是 DS.ManyArray。由于我的 API 为关联对象发送了一个 id 数组,因此 DS.ManyArray 中包含正确数量的项目,但 id 以外的记录属性从未加载。
我在 config/environment.js
中的开发和生产环境设置之间的唯一区别是 API 端点,并且在开发中打开了一些日志记录。相同的 DS.ActiveModelAdapter 用于所有环境。
关于为什么这种行为会在生产中改变的任何想法?
事实证明,这个问题是将预编译资产提交给项目回购的结果。因此,ruby buildpack 跳过资产编译,导致旧版本的资产支持生产实例。
解决方案是从 Rails 应用中删除 public/assets 并重新部署到 Heroku。