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