Estoy usando meta_search para ordenar columnas en una tabla. Una de las columnas de mi tabla es un recuento de los registros asociados para un modelo en particular.Rails meta_search gem: ordena por recuento de un modelo asociado
Básicamente se trata de esto:
class Shop < ActiveRecord::Base
has_many :inventory_records
def current_inventory_count
inventory_records.where(:current => true).count
end
end
class InventoryRecord < ActiveRecord::Base
belongs_to :shop
#has a "current" boolean on this which I want to filter by as well
end
En mi tienda de la vista de índice # Tengo una tabla que muestra el current_inventory_count para cada tienda. ¿Hay alguna forma de usar meta_search para ordenar las tiendas según este conteo?
No puedo usar mi método current_inventory_count porque meta_search solo puede usar métodos personalizados que devuelven un tipo de relación ActiveRecord ::.
La única manera en que puedo pensar en hacer esto es hacer un SQL personalizado que incluya el recuento en una columna "virtual" y hacer la ordenación por esta columna. No estoy seguro de si eso es posible.
¿Alguna idea?
Estoy usando Rails 3.0.3 y la última meta_search.
sería mi mejor apuesta es simplemente agregar una columna DB "current_inventory_records_count" a tiendas que sólo asegúrese siempre es correcta utilizando de before_save ? – jfeust