我正在尝试运行一个基本的rails应用程序,它可以帮助从食物列表中捕获每种食物的营养信息。营养信息按每种成分储存,并按单个成分的总和计算。
以下是我目前掌握的情况:
有两种食物和配料模型。每种食物都有许多成分,每种成分都被用在许多食物中。我想解决这个问题的方法是,用一个中间有食物主键和主键成分的菜谱表来分解多对多。但我的问题是,一个配方可以有很多成分,一个成分有很多配方。如何以最佳方式拆分这两张表,以便捕获食物及其配料列表?还是有更好的方法来完成这件事?
举例来说,食物有名称,说明和成分有名称,卡路里,营养素。

最佳答案

你需要学会。
您将组织如下:

class Food < ActiveRecord::Base
  has_many :recipes
  has_many :ingredients,
    through: :recipes
end

class Ingredient < ActiveRecord::Base
  has_many :recipes
  has_many :foods,
    through: :recipes
end

class Recipe < ActiveRecord::Base
  belongs_to :food
  belongs_to :ingredient
end

这样,您可以在Recipe

关于mysql - 与多对多的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31535101/

10-11 05:20