2015-01-08 2 views
0
App.Locale = DS.Model.extend 
    language: DS.belongsTo("language") 

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

레일을 백엔드로 사용합니다. 언어를 선택하기위한 드롭 다운이있는 로켈을 만들려고합니다. 내 생각은 language_id를 백엔드에 전달하는 것이지만 제출할 때 다음을 얻습니다. 어떻게일련 번호가 지정된 ID가 포함 된 숙어 날짜

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

내가이 당신이 ActiveModelSerializer를 사용한다고 가정

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

감사

답변

1

처럼 보이도록 변환, 나는 당신의 대답은 here 생각합니다. 그냥 해시에 key 속성을 추가 : 만 직렬화 할 때 language_id를 사용하려면

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

을하지만, 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