Ruby on rails 如何用grapeapi嵌套属性?

Ruby on rails 如何用grapeapi嵌套属性?,ruby-on-rails,ruby,grape,grape-entity,Ruby On Rails,Ruby,Grape,Grape Entity,我的模型有嵌套属性,但我无法通过API请求检索它们。我尝试使用Grape实体,但它对我不起作用。如何使用Grape检索父对象的嵌套属性 api.rb module Sims class API < Grape::API format :json prefix :api version 'v1', :path mount Sims::V1::ProviderForms end end module Sims module V1 class Provid

我的模型有嵌套属性,但我无法通过API请求检索它们。我尝试使用Grape实体,但它对我不起作用。如何使用Grape检索父对象的嵌套属性

api.rb

module Sims
 class API < Grape::API
   format :json
   prefix :api
   version 'v1', :path
 
   mount Sims::V1::ProviderForms
 end
end
module Sims
 module V1
  class ProviderForms < Sims::API
    include Grape::Kaminari
     params do
      use :pagination, per_page: 20, max_per_page: 30
     end

  resources :provider_forms do
    desc 'return provider forms'
    get do
     present paginate(ProviderForm.all), with: PersonalInfoEntity
    end
 end
   class PersonalInfoEntity < Grape::Entity
     expose personal_info do
       expose :first_name
       expose :last_name
     end
    end
  class ProviderForm < ActiveRecord
    has_one :personal_info, dependent: :destroy
    accepts_nested_attributes_for :personal_info, allow_destroy: true
  end
class PersonalInfo < ActiveRecord
  belongs_to :provider_form
end
模块模拟人生
类API
provider\u forms.rb

module Sims
 class API < Grape::API
   format :json
   prefix :api
   version 'v1', :path
 
   mount Sims::V1::ProviderForms
 end
end
module Sims
 module V1
  class ProviderForms < Sims::API
    include Grape::Kaminari
     params do
      use :pagination, per_page: 20, max_per_page: 30
     end

  resources :provider_forms do
    desc 'return provider forms'
    get do
     present paginate(ProviderForm.all), with: PersonalInfoEntity
    end
 end
   class PersonalInfoEntity < Grape::Entity
     expose personal_info do
       expose :first_name
       expose :last_name
     end
    end
  class ProviderForm < ActiveRecord
    has_one :personal_info, dependent: :destroy
    accepts_nested_attributes_for :personal_info, allow_destroy: true
  end
class PersonalInfo < ActiveRecord
  belongs_to :provider_form
end
模块模拟人生
模块V1
类ProviderForms
个人信息实体.rb

module Sims
 class API < Grape::API
   format :json
   prefix :api
   version 'v1', :path
 
   mount Sims::V1::ProviderForms
 end
end
module Sims
 module V1
  class ProviderForms < Sims::API
    include Grape::Kaminari
     params do
      use :pagination, per_page: 20, max_per_page: 30
     end

  resources :provider_forms do
    desc 'return provider forms'
    get do
     present paginate(ProviderForm.all), with: PersonalInfoEntity
    end
 end
   class PersonalInfoEntity < Grape::Entity
     expose personal_info do
       expose :first_name
       expose :last_name
     end
    end
  class ProviderForm < ActiveRecord
    has_one :personal_info, dependent: :destroy
    accepts_nested_attributes_for :personal_info, allow_destroy: true
  end
class PersonalInfo < ActiveRecord
  belongs_to :provider_form
end
class PersonalInfoEntity
提供者\u表单.rb

module Sims
 class API < Grape::API
   format :json
   prefix :api
   version 'v1', :path
 
   mount Sims::V1::ProviderForms
 end
end
module Sims
 module V1
  class ProviderForms < Sims::API
    include Grape::Kaminari
     params do
      use :pagination, per_page: 20, max_per_page: 30
     end

  resources :provider_forms do
    desc 'return provider forms'
    get do
     present paginate(ProviderForm.all), with: PersonalInfoEntity
    end
 end
   class PersonalInfoEntity < Grape::Entity
     expose personal_info do
       expose :first_name
       expose :last_name
     end
    end
  class ProviderForm < ActiveRecord
    has_one :personal_info, dependent: :destroy
    accepts_nested_attributes_for :personal_info, allow_destroy: true
  end
class PersonalInfo < ActiveRecord
  belongs_to :provider_form
end
class ProviderForm
个人信息.rb

module Sims
 class API < Grape::API
   format :json
   prefix :api
   version 'v1', :path
 
   mount Sims::V1::ProviderForms
 end
end
module Sims
 module V1
  class ProviderForms < Sims::API
    include Grape::Kaminari
     params do
      use :pagination, per_page: 20, max_per_page: 30
     end

  resources :provider_forms do
    desc 'return provider forms'
    get do
     present paginate(ProviderForm.all), with: PersonalInfoEntity
    end
 end
   class PersonalInfoEntity < Grape::Entity
     expose personal_info do
       expose :first_name
       expose :last_name
     end
    end
  class ProviderForm < ActiveRecord
    has_one :personal_info, dependent: :destroy
    accepts_nested_attributes_for :personal_info, allow_destroy: true
  end
class PersonalInfo < ActiveRecord
  belongs_to :provider_form
end
class PersonalInfo