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
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