Ransack, найдите запись, которая имеет все связанные записи

У меня есть модель рецепта, в которой есть ингредиенты has_many, и каждый ингредиент принадлежит к предмету. В моей форме расширенного поиска я бы хотел, чтобы пользователь выбрал несколько ингредиентов и позволил Ransack найти рецепт, содержащий все ингредиенты, выбранные пользователем.

Я пробовал следующее поле поиска:

= f.collection_select(:ingredients_item_id_in, Item.all, :id, :name, {}, {multiple: true})

Но, по логике, это приводит ко всем показанным рецептам, которые содержат любой из выбранных ингредиентов.

изменения:ingredients_item_id_in в:ingredients_item_id_in_all приводит к неправильному запросу, так как одна запись не может содержать несколько значений item_id.

Любые идеи по созданию этого параметра поиска в Ransack, или я должен создать подзапрос для этого?

По запросу мой контроллер метод поиска:

  def search
    @q = Recipe.ransack(params[:q])
    @recipes = @q.,result(distinct: true).include_related_models.published
  end

Ответы на вопрос(1)

Ваш ответ на вопрос