[Ruby] Filtering with multiple columns from related tables using sunspot
I created a slightly complex filtering condition using sunspot, a Ruby wrapper library for Solr, so here’s a memo.
# Sunspot/Search
searchable do
# Filter by display setting ON (visibility.visible == true) AND
# specified permission (role_id)
integer :role_ids_with_visible, multiple: true do
visibilities.select { |visibility| visibility.visible == true }
.map { |visibility| visibility.role_id }
end
end
In SQL, this is similar to joining related tables and filtering with something like “where visible = true and role_id = xxx”.
That’s all from the Gemba.