# 通过 Ember 端 User 模型发布自定义用户字段会忽略这些字段

**URL:** https://meta.discourse.org/t/posting-custom-user-fields-via-the-ember-side-user-model-just-ignores-the-fields/155650
**Category:** Development
**Created:** [2020年六月23日 05:30 UTC](https://meta.discourse.org/t/posting-custom-user-fields-via-the-ember-side-user-model-just-ignores-the-fields/155650 "2020-06-23T05:30:58Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![fzngagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fzngagan/32/259349_2.png) [@fzngagan](https://meta.discourse.org/u/fzngagan)
#### Post date: [2020年六月23日 05:30 UTC](https://meta.discourse.org/t/posting-custom-user-fields-via-the-ember-side-user-model-just-ignores-the-fields/155650/1 "2020-06-23T05:30:58Z")

</div>

继续讨论 [通过插件出口添加自定义字段](https://meta.discourse.org/t/adding-custom-fields-via-plugin-outlet/109003/3)：

我刚刚尝试向 `user-preferences-profile` 出口添加一个自定义设置。

我还重新打开了 `controllers/preferences/profile.js`，将我的属性添加到 `saveAttrNames` 数组中，以便让我的自定义属性能够传递给 Ember 端用户模型的 `save` 方法。但通过调试，我发现用户模型的 `save` 方法如果字段未预先列在 `userFields`、`userOptionFields` 等数组中（通过 `_.intersection` 调用），就会直接丢弃该字段。

我建议提供一个 API，以便能够通过用户模型本身将数据发送到服务器；或者，如果这是有意为之的设计选择，我希望了解其背后的理由，或者是否有其他方法可以实现这一目标。

我的用例是通过插件在 `preferences` 页面添加一个设置，并使用同一个“保存更改”按钮与其他偏好设置一起保存。

我知道 `discourse-cakeday` 插件也实现了类似功能，但 `date_of_birth` 字段存在于 `userFields` 数组中，因此能够正常工作。
