私のレールアプリのモデル(FirstModel)は他のモデル(Item)とhas_many関係にあります。レールでjbuilderを使用して異なるクラスのオブジェクトの配列を構築する
class FirstModel < ActiveRecord::Base
has_many :items, :dependent => :destroy
def item_array
a = []
self.items.each do |item|
a.push(item.item_thing)
end
a
end
end
アイテム自体が以下のものです:item_thingから多形関連。 FirstModelのメソッドは、Joinモデルオブジェクト(Itemクラス)ではなくitemsオブジェクトの配列を返します。したがって、クラスの異なるオブジェクトの配列です(rails console、そしてこの方法はFirstModelのための私のshow.json.jbuilderでうまく配列)
class Item < ActiveRecord::Base
belongs_to :item_thing, :polymorphic => true
end
を返し、私は「アイテム」の配列を取得し、アイテムが属するクラスに基づいて異なるテンプレートを使用します。次のファイル・パス "ビュー/ API /アイテム/ show.jbuilder"
あるjson.extract! @item, :name
json.items @item.item_array do |item|
if item.class == 'Book'
json.partial! 'api/books/show', item
end
if item.class == 'Car'
json.partial! 'api/cars/show', item
end
end
車とブックテンプレートのパスは、 "ビュー/ API /車/ show.json.jbuilder" と「ビュー/ API /冊です/show.json.jbuilder。
上記のテンプレートからjsonを取得すると、FirstModelオブジェクトの名前が表示され、items配列は空ですが、各アイテムのハッシュの配列を取得しようとしていますそれぞれのテンプレート