Sto utilizzando RABL per produrre un set di risultati Sunspot/SOLR e l'oggetto dei risultati di ricerca è composto da più tipi di modello. Attualmente all'interno della visualizzazione rabl ho:Rabl Raccolta multi-modello
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
Quanto sopra funziona per un singolo modello; tuttavia, quando più tipi di modello si trovano all'interno della raccolta @ search.results, non riesce perché entrambe le classi non hanno gli stessi metodi di istanza. Qualcuno sa come avere attributi diversi in base al tipo? In definitiva, sarebbe bello estendere condizionalmente un modello diverso all'interno della raccolta dei risultati in base al tipo di oggetto. Qualcosa come il pseudo codice qui sotto:
child @search.results => :results do |r|
if r.class == Product
extends "product/base"
else
extends "some other class base"
end
end
Grazie Nathan: ha funzionato perfettamente! Apprezzo davvero l'aiuto - e la cosa parziale mantiene le cose veramente pulite. – ejlevin1
Grazie, mi ha davvero aiutato –