Uso Thinking Sphinx 2.0.13 con Rails 3.2.9.Utilizzo di "metodo non definito" con gli ambiti Sfinge di pensiero quando si utilizza STI
Dato che ho e di classe STI che assomiglia a questo:
class User < ActiveRecord::Base
define_index do
has :account_id
has :is_deleted
end
sphinx_scope(:by_account) do |account_id|
{:with => {:account_id => account_id}}
end
sphinx_scope(:without_deleted) do
{:with => {:is_deleted => false}}
end
end
class Admin < User
end
Se tento di usare un singolo ambito sia sul utente o classe di Admin, tutto va bene. Posso anche concatenare gli ambiti usando il modello Utente, come previsto. Il problema è, se mi incateno ambiti sul modello di amministrazione, ottengo:
> Admin.by_account(1).without_deleted
NoMethodError: Sphinx Query (2.9ms)
Sphinx Found 3 results
Admin Load (0.6ms) SELECT `users`.* FROM `users` WHERE `users`.`type` IN ('Admin') AND `users`.`id` IN (7, 8, 9)
undefined method `without_deleted' for #<ThinkingSphinx::Search:0x007fd3d95f7a08>
Sembra essere in esecuzione della query, non appena si incontra il primo campo di applicazione. C'è qualcosa di ovvio che mi manca, o sembra un problema con TS?
La classe utente ha un campo DB chiamato is_deleted? con tipo booleano? – Lichtamberg
@Lichtamberg - sì, la colonna è lì ed è booleana. O lo scope funziona bene per proprio conto - è solo quando sono incatenati che si rompe. – Codebeef
potresti mostrare la risposta se metti Admin.by_account (1) nella console? – Lichtamberg