6
私はRABLを使用してSunspot/SOLR結果セットを出力しています。検索結果オブジェクトは複数のモデルタイプで構成されています。現在のところ、私は以下を持っています:Rablマルチモデルコレクション
object false
child @search.results => :results do
attribute :id, :resource, :upccode
attribute :display_description => :description
code :start_date do |r|
r.utc_start_date.to_i
end
code :end_date do |r|
r.utc_end_date.to_i
end
end
child @search => :stats do
attribute :total
end
上記のモデルは単一のモデルで動作します。ただし、複数のモデルタイプが@ search.resultsコレクション内にある場合、両方のクラスに同じインスタンスメソッドがないため、失敗します。誰かがタイプに基づいて異なる属性を持つ方法を知っていますか?最終的には、オブジェクトのタイプに基づいて、結果コレクション内の別のテンプレートを条件付きで拡張することが良いでしょう。以下の擬似コードのような何か:あなたは完全に「最悪」の場合には「ノード」との完全な制御を取ると、この問題を回避することができます
child @search.results => :results do |r|
if r.class == Product
extends "product/base"
else
extends "some other class base"
end
end
ありがとうございましたNathan - これは完璧に機能しました!本当に助けていただきありがとうございます。 – ejlevin1
ありがとう、これは本当に私を助けた –