Ember日期从Rails API返回“未定义”

时间:2016-03-03 03:19:14

标签: ruby-on-rails json ember.js ember-data

我有一个运行Rails API后端的Ember应用程序,我在两者之间遇到了一个奇怪的问题。我希望存储在API中的Message模型数据将堆栈发送到Ember。我已经在数据库中添加了一些消息来构建以匹配此迁移:

class CreateMessages < ActiveRecord::Migration[5.0]
  def change
    create_table :messages do |t|
      t.text :body
      t.boolean :flagged

      t.timestamps
    end
  end
end

加上一个看起来像这样的序列化器:

class MessageSerializer < ActiveModel::Serializer
  attributes :id, :body, :flagged, :created_at, :updated_at      
end

在Ember方面,我的模型设置如下:

import DS from 'ember-data';

export default DS.Model.extend({
  body: DS.attr('string'),
  flagged: DS.attr('boolean'),
  createdAt: DS.attr('date'),
  updatedAt: DS.attr('date')
});

Ember显示标记和肢体参数都很好,但它只返回undefinedcreatedAt的{​​{1}}。通过检查Rails控制台,对第一个Message的快速测试返回如下内容:

updatedAt

我已经在GitHub上看到了一些或多或少完全做到这一点的引用,我无法弄清楚事情的发展方向。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

如果其他人遇到此问题,解决方案看似简单。我所要做的就是添加:

ember g serializer message

然后用以下内容填充该文件:

import DS from 'ember-data';

export default DS.JSONAPISerializer.extend({
   keyForAttribute: function(key) {
    return Ember.String.decamelize(key);
  }
});

够简单!出于某种原因,将其放入application.js不起作用,但这完成了工作。