5

在 Ember 数据 0.13 中,复数定义如下:

DS.RESTAdapter.configure("plurals", {
 category: "categories"
});

配置不再存在,因此需要另一种方式来定义复数。

神奇的是,如果我通过“return this.store.find('category');”进行查找,JSON 调用包括 /categories 而不是 /categorys,尽管我根本没有指定 category 的复数是类别...

Ember 数据如何确定这一点?有没有办法覆盖?

谢谢

4

5 回答 5

6

我在 app.js 中使用以下内容:

var inflector = Ember.Inflector.inflector;
inflector.irregular("patient", "patients");
于 2013-09-12T22:45:05.620 回答
5

我不知道如何实际导航到 REST 适配器文档,但我最近使用以下示例更新了Pluralization Customization 部分:

Ember.Inflector.inflector.irregular('formula', 'formulae');
Ember.Inflector.inflector.uncountable('advice');
于 2013-10-02T20:46:36.510 回答
3

如果要避免仅在 url 中使用复数形式的模型名称,则可以覆盖负责转换的 pathForType 函数。它不影响复数功能,最后它是配置 buildUrl 过程的一种方式。

            App.ApplicationAdapter = DS.RESTAdapter.extend({
            namespace: 'rest/api',

            pathForType: function(type) {
                return (type);
            }
        });
于 2013-10-25T22:10:24.537 回答
2

通过使用 Ember Data v1.0.0-beta.2,我能够覆盖我的一个模型名称的自动复数

Ember.Inflector.inflector.rules.uncountable['dontpluralizemebro'] = true;

只需替换dontpluralizemebro为您不想复数的单词即可。我把它放在我的 app.js 文件的顶部。显然,这是未记录的,并且可能在将来的版本中随时更改。

我可以理解自动复数化如何变得很好,但恕我直言,我认为它浪费了宝贵的知识库,尤其是在移动设备上,这些知识并不是完全必要的。

于 2013-09-30T03:42:30.930 回答
2

似乎现在有特定单词(例如类别、番茄等)的默认复数形式。

见:https ://github.com/emberjs/data/commit/9325a1dea594b8ff752886eb7a9d752785282e07

感谢大卫·麦克穆林!

于 2013-09-01T20:00:04.037 回答