グレープ ジェムを使用して REST API を追加しています。また、grape-entities ジェムも追加しました。私が必要としているのは、Product、Company、ManufactureCompany の 3 つのモデルのデータが 1 つの json ファイルに含まれていることです。
の関係product.rb
:
has_many :manufacture_companies
has_many :manufacturers, :through => :manufacture_companies, :source => :company
products.rb
ファイル:
class Products < Grape::API
resource :products do
get do
@products = Product.all
present @products, with: Entities::Product
end
end
end
そしてentities.rb
:
class Product < Grape::Entity
expose :id, :name,:description, :barcode
expose :net_weight, :reference_unit
expose :prepare_instructions, :storage_instructions, :origin
expose :manufacturers, using: Entities::Company
end
class Company < Grape::Entity
expose :id
expose :name
end
エンティティはおそらく間違っています。has_many リレーションシップではただ言うことができるのを見ましたexpose :something, using: Entities::RelatedModel
が、この場合、関連するモデルには product_id と company_id (および独自の ID) しかありません。ネット上で例を見つけることができませんでした。