Themen anhand eines benutzerdefinierten Feldes abrufen?

So geht’s:

  1. Auf dem Client: Fügen Sie einen Topic-Query-Parameter mit api.addDiscoveryQueryParam hinzu.

  2. Auf dem Server: Filtern Sie Topic-Abfragen nach dem Parameter mit add_custom_filter in der Klasse TopicQuery (siehe lib/topic_query).

Die Callback-Funktion für add_custom_filter sieht etwa so aus:

::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 „Gefällt mir“