Rails 3中的ActiveRecord协会

我有这4款车型通过的has_many相互连接,belongs_to的关联。 基本都是2(配方,配料)。 基于前两个其他2存储的其他信息。

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

我尝试获取食谱这是可用库存,即Recipe.joins(:成份).joins(:股),但是,我得到一个错误:

ActiveRecord::ConfigurationError: Association named 'stock' was not found; perhaps you misspelled it?

SQL查询我试图达到的是:

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" ---

最后一个“INNER JOIN”是,我无法解释在轨道3码。 有任何想法吗?

谢谢,

--------------解决方案-------------

没有一个模型来验证,但是从我的头顶,你需要告诉它你没有参加过原始模型

Recipe.joins(:ingredients).joins(:ingredients => :stocks).select:

分类:Ruby on Rails的3 时间:2015-03-13 人气:1
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.660 (s). 10 q(s)