0

Как это сделатьНастройка has_many, belongs_to вложенной ассоциации JSON в Active Model Serializer

class UserSerializer < ApplicationSerializer 
    attributes :id, :name. :email 

    has_many :posts do     # I don't want to use PostSerializer 
    attributes :id, :title    # /posts/index would show more data 
    has_many :comments do    # like created_at, updated_at, edits, other assocs.. 
     attributes: :id, :content 
    end 
    end 

    belongs_to :category do    # I dont' want to user CategorySerializer 
    attributes :id, :name    # /categories/index would show more data 
    end         # like created_at, no. of users, associations, etc., 
end 

ответ

0

Вы можете сделать что-то подобное, но с использованием serializers

class UserSerializer < ApplicationSerializer 
    attributes :id, :name, :email, :user_posts 

    def user_posts 
    object.posts.map do |post| 
     PostSerializer.new(post, only: [:id, :title]) 
    end 
    end 

end 
+0

'NameError: неопределенную локальную переменную или метод «user_posts''. Он не переходит в функцию, фактически даже не распознает объявление функции. Я использую 'Ruby 2.3' на' Rails 5.0.0.1' с 'Active Model Serializers 0.10.3' –

+0

, используя': user_posts' вместо этого помогает перейти в функцию, но не уважает 'only: [: id,: TITLE] ' –

Смежные вопросы