Os explico la situación:
En un modelo User, hay varios campos: nickname, name, surname,
activated_at … la combinación de algunos de ellos determina si el
usuario está activo, ya que ha completado su perfil, o no, por
ejemplo:
class User < ActiveRecord::Base
…
def active_user
!(self.activated_at.nil? || self.nickname.nil? || self.name.nil?)
end
hasta aqui todo normal. Como es lógico quiero excluir los usuarios
inactivos de las búsquedas (estoy usando Shphinx + Thinking Sphinx)
Sabeis si hay alguna manera de indexar el resultado de un método?, en
este caso seria hacer algo asÃ
define_index do
indexes nickname, :sortable => true
…
has active_user, :as => :active
end
para luego poder hacer:
@results = User.search query, :coditions => {:active => true}
Evidentemente una solución es comprobar por separado cada uno de los
campos que debe completar el usuario, pero si se pudiera hacer esto
seria …
–