मैं मॉडल Service
है शर्त के साथ शामिल होने के लिए सूचकांक, यह सेवा प्रकार आईडी द्वारा सेवाओं फिल्टर करने के लिए गुंजाइश है:में सोच रही थी स्फिंक्स (has_and_belongs_to_many)
class Service < ActiveRecord::Base
has_and_belongs_to_many :service_types
scope :by_service_types, -> ids { joins(:service_types).where('service_types_services.service_type_id in (?)', ids) }
end
class ServiceType < ActiveRecord::Base
has_and_belongs_to_many :services
end
तो, जब मैं गुंजाइश चलाने के लिए, मैं इस तरह के परिणाम प्राप्त :
Service.by_service_types([54])
Service Load (0.8ms) SELECT "services".* FROM "services" INNER JOIN "service_types_services" ON "service_types_services"."service_id" = "services"."id" INNER JOIN "service_types" ON "service_types"."id" = "service_types_services"."service_type_id" WHERE "services"."deleted" = 'f' AND (service_types_services.service_type_id in (54))
=> ...
मैं इस तरह के दायरे के लिए सूचकांक बनाने के लिए विशेषता कैसे बना सकता हूं?