Saque, encontre um registro que possua todos os registros relacionados

Eu tenho um modelo de receita que possui muitos ingredientes e cada ingrediente pertence a um item. No meu formulário de pesquisa avançada, eu gostaria que um usuário selecionasse vários ingredientes e deixasse o Ransack encontrar uma receita que contenha todos os ingredientes selecionados pelo usuário.

Eu tentei o seguinte campo de pesquisa:

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

Mas, logicamente, isso resulta em todas as receitas mostradas que contêm qualquer um dos ingredientes selecionados.

mudando:ingredients_item_id_in para:ingredients_item_id_in_all resulta em uma consulta incorreta, pois um registro não pode conter vários valores de item_id.

Alguma idéia sobre como criar esse parâmetro de pesquisa no Ransack, ou devo criar uma subconsulta para isso?

Mediante solicitação, meu método de controlador para pesquisa:

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

questionAnswers(1)

yourAnswerToTheQuestion