In dem großen Projekt, an dem ich arbeite, haben wir viele Modelle, die wir indexieren und suchen möchten. Ich merke, dass ich immer wieder Dinge wiederhole ... und ich weiß, dass dies später schlecht sein kann, wenn wir Änderungen vornehmen!Verwenden von Thinking Sphinx und bleiben DRY (nicht wiederholen)
Gibt es eine gute Möglichkeit, Code DRY während Thinking Sphinx zu halten? Insbesondere habe ich den folgenden Code-Block in jedem Modell möchte ich Index:
define_index do
... # model specific code goes here
set_property :delta => true
has :created_at
end
sphinx_scope(:only_active) do
{ :conditions => { :status => 1 } }
end
ich diesen gemeinsamen Code antizipieren in Größe und Funktionalität zu wachsen, da das Projekt ... entwickelt sich nicht zu erwähnen, dass es Fehlerbehebungen sein kann . Offensichtlich möchte ich das ausrechnen. Ich möchte in der Lage sein, etwas zu tun:
define_index_with_common_settings do
... # model specific code goes here
end
und haben die gemeinsame indizierte Attribute automatisch in den Index aufgenommen werden ... und haben gemeinsame Suche bezogenen Methoden und Bereiche definiert werden.
Ist das möglich? Wie wird es gemacht?