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