カスタムフィールドに基づいてトピックを取得しますか?

これを行う方法は以下の通りです

  1. クライアント側で: api.addDiscoveryQueryParam を使用してトピックのクエリパラメータを追加します

  2. サーバー側で: 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
「いいね!」 3