【发布时间】:2015-09-28 17:52:37
【问题描述】:
在我的项目中,我为具有不规则名称的模型设置了变形器,campus
由于某种原因,从 Ember CLI 0.2.7 更新到 Ember CLI 1.13.8 后,变形器不再应用于模型。
尝试访问商店时,this.store.findRecord('campus', params['campus_id']),我收到警告
WARNING: Encountered "campus" in payload, but no model was found for model name "campu" (resolved model name using app@serializer:campus:.modelNameFromPayloadKey("campus"))
随后出现此错误
No model was found for 'campu' Error: No model was found for 'campu'
返回的负载看起来像这样
{
campus: {
id: 1,
name: "Default Campus"
},
meta: {
total: 1,
page: 1
}
}
而且我一直在使用初始化器并取得了成功
import Ember from 'ember';
export function initialize(/* registry, application */) {
var inflector = Ember.Inflector.inflector;
inflector.irregular('campus', 'campuses');
}
export default {
name: 'inflections',
initialize: initialize
};
我已尝试将 Ember Data 更新到最新版本 1.13.13,并将 ember 变形器更新到 1.9.3。我也尝试将不规则变形器移到模型中,但距离解决问题还很遥远
我还尝试在控制台中运行以下代码,然后再调用商店以查看变形器设置为什么
var inflector = Ember.Inflector.inflector;
inflector.singularize('campus') // returns "campus"
inflector.pluralize('campus') // returns "campuses"
这个问题非常令人沮丧,因为似乎没有办法解决它。
【问题讨论】:
-
抱歉,忘记添加适配器类型。对于序列化程序,我使用来自github.com/ember-data/active-model-adapter 的 ActiveModelSerializer 但应用程序本身使用 RESTAdapter
-
inflector.irregular('campus', 'campuses');是错字吗? -
@Artych,我不确定你所说的“错字”是什么意思。 Ember.Inflector.inflector.irregular('campus', 'campuses') 应该告诉 Ember,campus 是单数形式,而复数形式是 Campuses。这是预期的行为,也是更新之前发生的情况
标签: ember.js ember-data ember-cli