2016-03-23 4 views
0

меня диссертаций ассоциации:Рендер Хеш объекты, принадлежащие к экземпляру

# Post 
has_many :photos 

# Photos 
belongs_to :post 

В моем шоу действия, в пост управления, у меня есть:

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

Однако, я бы хотел, JSON включать фотографии на почту, и получить что-то вроде этого:

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

я нашел много сообщений о том, как сделать наоборот но не это. Как мне подойти к этому?

+0

Я думаю, что вы можете использовать [Active Model сериализаторы] (https://github.com/rails-api/active_model_serializers). Имейте что-то вроде has_many: фотографии там и реализуйте метод фотографий с вашим желаемым выходом. – radubogdan

+0

Как насчет использования [JBuilder] (https://github.com/rails/jbuilder)? – Vucko

+0

Кроме того, не следует '@photos = @ post.photo' быть' @photos = @ post.photos'? – Vucko

ответ

1

Вы можете сделать это следующим образом:

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