Use ActiveModel::Serializers to include two parent json arrays

前端 未结 2 1937
误落风尘
误落风尘 2021-02-04 08:43

I\'m trying to send my front-end application json that looks like this:

{
  facilities: [
     {id: 5, name: \'happy days ranch\', location: { address: \'1424 Pa         


        
2条回答
  •  说谎
    说谎 (楼主)
    2021-02-04 08:59

    I solved it by creating a class called Search that incorporates aspects of ActiveModel

    class Search
      include ActiveModel::Serialization
      include ActiveModel::SerializerSupport
    
      attr_accessor :facilities, :instructors
    
      def initialize(facilities, instructors)
        @facilities, @instructors = facilities, instructors
      end
    end
    

    Then I created a Searches controller (nothing interesting there) and a Search serializer.

    class SearchSerializer < ActiveModel::Serializer
      has_many :instructors, embed: :objects
      has_many :facilities, embed: :objects
    end
    

    This creates my desired json, although now it is wrapped in a search hash:

    {search: {
      #the stuff I wanted 
    }}
    

提交回复
热议问题