1

Rails プロジェクトで Sunspot 1.3.0 を使用しています。

Post.search do
  with(:category_ids, [1, 3, 5])
end

カテゴリが 1、3、または 5 の投稿に一致します。

正確に 1、3 、および5 のカテゴリの投稿に一致する正しい構文は何ですか?

たとえば、
category_ids = [1] と一致しない投稿 -
category_ids = [1, 3] と一致しない -
category_ids = [1, 3, 5] と一致しない - category_ids =
[1, 3, 5, 7] と一致する - 一致しない一致しない

私は試した

with(:category_ids).equal_to([1,3,5])

しかし、これは私に次のエラーを与えます: undefined method `gsub' for ["1", "3", "5"]:Array

4

1 に答える 1

1

したがって、この問題を解決するために「all_of」を使用することになりました。
それが他の誰かを助ける場合に備えて、これは私がやったことです:

with(:category_ids).all_of([1,3,5])

これは [1,3,5] の投稿カテゴリに一致しますが、[ 0 ,1,3,5, 7 ] などの追加カテゴリを持つ投稿にも一致します。

Sunspot が結果セットを返したら、完全に一致しない投稿を除外しました。

これは私が望むことを行いますが、これを行うためのより簡潔な方法があることを望みました。

于 2012-02-06T12:39:40.493 に答える