【问题标题】:Emberjs, rails - Active Model AdapterEmberjs,rails - 主动模型适配器
【发布时间】:2015-08-12 12:35:00
【问题描述】:

我有一个带有“active_model_serializers”gem 的 rails api。

http://localhost:3000/api/buildings/30.json 为我生成:

{  
   building:{  
      id:30,
      city_name:"msc",
      infrastructure:[  
         {  
            id:40,
            name:"name 1",
            created_at:"2015-07-30T08:26:49.000Z",
            updated_at:"2015-07-30T08:26:49.000Z"
         },
         {  
            id:69,
            name:"name 2",
            created_at:"2015-07-30T08:26:50.000Z",
            updated_at:"2015-07-30T08:26:50.000Z"
         },
         {  
            id:39,
            name:"name 3",
            created_at:"2015-07-30T08:26:49.000Z",
            updated_at:"2015-07-30T08:26:49.000Z"
         }
      ]
   }
}

我还将 EmberJs 与 ActiveModelAdapter 一起使用。但 Ember 预计会这样:

{  
   building:{  
      id:30,
      city_name:"msc",
      infrastructure:[  
         40,
         69,
         39
      ]
   },
   infrastructure:[  
      {  
         id:40,
         name:"name 1",
         created_at:"2015-07-30T08:26:49.000Z",
         updated_at:"2015-07-30T08:26:49.000Z"
      },
      {  
         id:69,
         name:"name 2",
         created_at:"2015-07-30T08:26:50.000Z",
         updated_at:"2015-07-30T08:26:50.000Z"
      },
      {  
         id:39,
         name:"name 3",
         created_at:"2015-07-30T08:26:49.000Z",
         updated_at:"2015-07-30T08:26:49.000Z"
      }
   ]
}

如何让 ember 使用 rails json 结构?谢谢!

【问题讨论】:

    标签: ruby-on-rails ember.js ember-data active-model-serializers


    【解决方案1】:

    您需要在 Ember 端使用 Embedded Records Mixin

    App.ColorSerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
      attrs: {
        foos: {embedded: 'always'}
      }
    });
    

    查看this answer

    【讨论】:

    • “列出所有嵌入在 attrs 哈希中的类型”真的很难看。但这是工作!非常感谢!
    【解决方案2】:

    另一种选择是走 JSON API 路线。

    我认为这是一个更好的选择,因为

    • 您开始为 Ember Data 的当前/未来格式编码
    • 更清晰地映射和了解数据会发生什么

    我在http://emberigniter.com/modern-bridge-ember-and-rails-5-with-json-api/ 写了一个指南(适用于 Rails 5),但您肯定可以将其调整到您的 Rails 版本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多