이 작업을 수행하는 방법은 다음과 같습니다.
-
클라이언트:
api.addDiscoveryQueryParam을 사용하여 토픽 쿼리 매개변수를 추가합니다. -
서버:
TopicQuery클래스(lib/topic_query참조)에서add_custom_filter를 사용하여 해당 매개변수로 토픽 쿼리를 필터링합니다.
add_custom_filter 콜백은 다음과 유사한 형태가 됩니다.
::TopicQuery.add_custom_filter(:field_name) do |topics, query|
if query.options[:field_name]
topics.where("topics.id in (
SELECT topic_id FROM topic_custom_fields
WHERE (name = 'field_name')
AND value = '#{query.options[:field_name]}'
)")
else
topics
end
end