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

編集:api.addDiscoveryQueryParam をさらに調べてみたところ、基本的な考え方はわかってきたと思います:

カスタムフィールド fun_level = super-duper-fun を持つすべてのトピックをプログラムで取得したいと考えています。コントローラーのメソッドで実現できるかもしれません(まだ検討中)。

別の方法として、ajax("/search") を使ってカスタムフィールド fun_level=super-duper-fun に基づいてすべてのトピックを検索する方法もあります。ただし、カスタムフィールドを作成するだけではこれを有効にするには不十分です。カスタムフィールド fun_level を、カテゴリやタグなどと同様に検索対象として使用できるように設定する必要があります。これは自動的に実行されるものではありません。

何らかの形で、js ファイル内の api.addDiscoveryQueryParamplugin.rb 内の TopicQuery を組み合わせる必要があります。しかし、正直なところ、まだうまく動作させることができていません。これらのメソッドを使用しているプラグインはいくつか見たのですが、それらがどのように「成果を収めている」のかを理解できませんでした。追加のコードが必要だとは思うのですが、まだ見つけていません。

これらのメソッドから、実際にカスタムフィールドを検索語として利用可能にするには、どのように進めればよいのでしょうか?

以前の返信

@angus さん、ありがとうございます。目標を明確にすると、ユーザーが検索ボックスに手動で検索値を入力できるようにすることではありません。目標は、特定のカスタムフィールドに基づいてトピックをプログラムで取得することです。例えば、ユーザーが /fun_levels/super-duper-fun というページにアクセスし、フィールド fun_level が ‘super-duper-fun’ に一致するすべてのトピックを読み込むようにします。

その目的のために api.addDiscoveryQueryParam は適切でしょうか?

こちら のような例を見ると、addDiscoveryQueryParam が実際にトピックを取得するためにどのように機能するのかよくわかりません(このメソッドを呼び出すだけでは、解析可能な結果が返ってくるわけではないと思います)。

もしかすると、ユーザーが検索ボックスで手動に検索語を入力できるようにするためのものなのでしょうか?私が目指している状況とは異なります(何か見落としている可能性はあります)。

以前、トピックを返すために ajax("/search...") を使用することを挙げましたが、それは現時点で思いつく最善の方法でした。しかし、もっと効率的な方法があるのか疑問に思っています。モデルとコントローラーのメソッドを設定して、タグの /tags/:tag-name のようにトピックを自動的に表示する方法も含めてです(これはより複雑なので、避けたいのですが、それが最善の方法なら検討します)。