J'ai ces 4 modèles connectés les uns aux autres par l'intermédiaire de has_many, belongs_to associations. Les bases sont 2 (Recette, Ingrédient). Les 2 autres stockent des informations supplémentaires basées sur les deux précédentes.rails 3 Association ActiveRecord
class Recipe
has_many :ingredients, :through => :prescriptions
has_many :prescriptions
end
class Ingredient
has_many :recipes, :through => :prescriptions
has_many :prescriptions
has_many :stocks
end
class Stock
belongs_to :ingredient
end
class Prescription
belongs_to :recipe
belongs_to :ingredient
end
J'essaie de chercher recettes qui sont stocks disponibles, c'est-Recipe.joins (: ingrédients) .joins (: actions) mais, je reçois une erreur:
ActiveRecord::ConfigurationError: Association named 'stock' was not found; perhaps you misspelled it?
La requête SQL I essayer d'atteindre est:
SELECT "recipes".* FROM "recipes"
INNER JOIN "prescriptions"
ON "prescriptions"."recipe_id" = "recipes"."id"
INNER JOIN "ingredients"
ON "ingredients"."id" = "prescriptions"."ingredient_id"
---
INNER JOIN "stocks"
ON "stocks"."ingredient_id" = "ingredients"."id"
---
le dernier "INNER JOIN" est que je ne peux pas interpréter dans le code 3 rails. Des idées?
Merci,
oui ! c'est correct! Je ne peux pas croire que c'était si simple! Je vous remercie! –