2015-12-02 31 views
0

语境:我建立使用灰烬前端+ Rails的API配方的应用程序。在我的后端配方模型我存储image_urls数组(以及一些其他的数据作为字符串)。 Ember公司的数据是高兴的字符串添加到店,但当然不能处理的“数组”数据类型开箱即用的。我创建了一个数组转换为试图解决这一问题,但我不认为我的转变甚至被调用。在任何情况下我IMAGEURL数据属性回报为未定义。我的阵列数据类型不与Ember数据工作

下面是该项目的样子:

//配方模型

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    name: DS.attr('string'), 
    cookTime: DS.attr('string'), 
    yield: DS.attr('string'), 
    servings: DS.attr('string'), 
    imageUrls: DS.attr('array'), 

    ingredients: DS.hasMany('ingredient'), 

}); 

//来变换/ array.js

import DS from 'ember-data'; 

export default DS.Transform.extend({ 
    deserialize: function(serialized) { 
    return (Ember.typeOf(serialized) == "array") ? serialized : []; 
    }, 

    serialize: function(deserialized) { 
    var type = Ember.typeOf(deserialized); 
    if (type == 'array') { 
     return deserialized 
    } else if (type == 'string') { 
     return deserialized.split(',').map(function(item) { 
      return jQuery.trim(item); 
     }); 
    } else { 
     return []; 
    } 
    } 
}); 

这里是什么JSON的样子:

recipes: [{id: 14, name: "laudantium reprehenderit est", cook_time: "166 minutes", image_urls: ["http://s.iamafoodblog.com/wp-content/uploads/2015/10/meatlovers-pizza-9.jpg",…]},...] 

I k现在Ember并不容易违背惯例,但我仍然希望能够使这种方法奏效。另一种方法可能是将image_urls作为关系数据发送,这样我可以在我的食谱和图像之间创建一个hasMany关系,但这看起来也不太合适。对什么是错我的代码或其他途径的任何想法来解决这个问题?

回答

0

啊哈!问题不在于阵列,而在于我的序列化程序处理下划线的方式