Ember 带有序列化 id 的日期 belongTo

Ember date belongTo with serialized id

App.Locale = DS.Model.extend
  language: DS.belongsTo("language")

App.LocaleSerializer = App.ApplicationSerializer.extend
   attrs:
     language:  { serialize: "id", deserialize: "records" }

使用 ember 和 rails 作为后端。我正在尝试创建一个语言环境,其中有一个 select 语言的下拉菜单。我的想法是将 language_id 传递给后端,但是我在提交时得到以下信息。

{"locale"=>{"language"=>"15" }

如何将其转换为

{"locale"=>{"language_id"=>"15" }

谢谢

假设您使用的是 ActiveModelSerializer,我认为您的答案是 here。只需将 key 属性添加到哈希:

App.LocaleSerializer = App.ApplicationSerializer.extend
  attrs:
    language:  { key: "language_id", serialize: "id", deserialize: "records" }

如果你只想在序列化时使用language_id,而在反序列化时得到language,你总是可以重写serializeBelongsTo:

App.LocaleSerializer = App.ApplicationSerializer.extend
  serializeBelongsTo: (record, json, relationship) ->
    if relationship.key is 'language'
      json.language_id = Ember.get record, 'language.id'
    else
      @_super record, json, relationship