2016-03-23 3 views
0

Ich habe Thesen Verbände:Hash mit Objekten Instanz gehörigen

# Post 
has_many :photos 

# Photos 
belongs_to :post 

In meiner Show Aktion, in der Post-Controller, ich habe diese:

def show 
    @post = Post.find(params[:id]) 
    @photos = @post.photos 
    render json: {post: @post.id } 
end 

Allerdings würde Ich mag die json umfasst die Fotos von der Post, und so etwas wie diese:

{ 
    post: 14, 
    photos { 
     photo1 { 
      url: /myURL/, 
      id: 1 
     },  
     photo1 { 
      url: /myURL/, 
      id: 2 
     } 
    } 
} 

ich viele Beiträge, wie man das Gegenteil tun gefunden aber nicht das. Wie soll ich das angehen?

+0

Ich glaube, du [Aktiv Modell Serializer] (https://github.com/rails-api/active_model_serializers) verwenden können. Habe so etwas wie has_many: fotos drin und implementiere die fotos methode mit deiner gewünschten ausgabe. – radubogdan

+0

Wie wäre es mit [JBuilder] (https://github.com/rails/jbuilder)? – Vucko

+0

Sollte '@photos = @ post.photo' nicht auch' @photos = @ post.photos' sein? – Vucko

Antwort

1

Sie können es auf diese Weise tun:

render :json => @post, :include => [:photos => {:only => :url, :id}]