2013-01-20 5 views
5

Im Ember Leitfaden für Modelle http://emberjs.com/guides/models/the-rest-adapter/#toc_relationships Ich sehe, dass Verbände als ein Array von IDs angegeben werden sollen:Wie bekomme ich Rails, um JSON im richtigen Format für ember.js zu generieren?

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

Ich habe Probleme herauszufinden, wie Sie das Array von IDs in den Schienen-Controller generieren. Ich kann zwar: die dazugehörigen Modelle sind, werden sie als ein Array von Hashes enthalten:

{ "name": "Jane Place", "Zimmer": [{ "id": 1}, { "id ": 2}, {" id ": 3}]}

Irgendwelche Ideen, wie man die Array-Form bekommen würde?

Antwort

6

Ember empfiehlt die Verwendung des Attributs active_model_serializers, um JSON in einem kompatiblen Format zu generieren.

Hier ist ein Beispiel aus der active_model_serializer-Dokumentation, um genau das zu tun, was Sie fragen. Die embed :ids ist der Schlüssel.

class PostSerializer < ActiveModel::Serializer 
    embed :ids 

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

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

+0

Dank, nur, dass ich entdeckt nach der Lektüre https://github.com/emberjs /Daten. Installiert und versucht active_model_serializers. –

+0

Die Bestätigung von active_model_serializers funktioniert wie ein Zauber. –

-1

Alternativer Weg, dies zu tun, ist beim Anlegen Antwort übergeben: root => true

respond_to do |format| 
    format.html # index.html.erb 
    format.json { render :json => @posts, :root => true } 
end 
Verwandte Themen