Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get Rails to generate JSON in the correct format for ember.js?

In the Ember guide on models http://emberjs.com/guides/models/the-rest-adapter/#toc_relationships I see that associations should be specified as an array of ids:

{ "post": { "comments": [1, 2, 3] } }

I'm having trouble working out how to generate the array of ids in the rails controller. While I can :include the associated models, they are included as an array of hashes:

{"name":"Jane's Place","rooms":[{"id":1},{"id":2},{"id":3}]}

Any ideas on how one would get the array form?

like image 342
Martin Stannard Avatar asked Jan 20 '13 02:01

Martin Stannard


1 Answers

Ember recommends using the active_model_serializers gem to generate JSON in a compatible format.

Here is an example from the active_model_serializer documentation to do pretty much exactly what you're asking. The embed :ids is the key.

class PostSerializer < ActiveModel::Serializer
  embed :ids

  attributes :id, :title, :body
  has_many :comments
end

https://github.com/rails-api/active_model_serializers

like image 91
kstevens715 Avatar answered Nov 02 '22 11:11

kstevens715