J'ai actuellement ces trois tableaux:Comment utiliser et condition dans une requête ActiveRecord
create_table "cocktail_ingredients", force: :cascade do |t|
t.integer "cocktail_id"
t.integer "ingredient_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["cocktail_id"], name: "index_cocktail_ingredients_on_cocktail_id"
t.index ["ingredient_id"], name: "index_cocktail_ingredients_on_ingredient_id"
create_table "cocktails", force: :cascade do |t|
t.string "title"
t.string "ingredients"
t.text "method"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
create_table "ingredients", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
Je suis en train de faire un seach qui retourne tous les cocktails qui contiennent tous les ingrédients dans ma recherche. Jusqu'à présent, je suis parvenu à trouver ceci:
CocktailIngredient.where (ingredient_id: [1, 4]) carte. (&: cocktail) .uniq
qui retourne tous les cocktails qui incluent le ingrédient_id de 1 ou 4. J'essaie de retourner seulement les cocktails qui contiennent les deux ingrédients avec les id 1 et 4.
Toute aide serait grandement appréciée.
pendant que je recherche votre problème ... quel est le but du champ «ingridients» dans la table de cocktails? – AntonTkachov
Pour afficher facilement les ingrédients du cocktail à l'utilisateur par la suite – pfrasdog