这里是Rails的新手;难以掌握如何建模两种模型之间的关系:
单位表只包含“克”,“杯子”,“毫升”
的行我想将单位表与食物表相关联。目标是如果“serving_size”说100,那么我们就会知道它是盎司,克还是毫升。
我不知道该怎么做
开始:
但我不知道从这里出发的正确方法是什么?我可以编写执行原始SQL命令的方法,但必须有一个更简单的方法
我们可以做到这一点,以便我可以做类似的事情:Food.find(名字:'milk').unit.name?
感谢任何帮助!
谢谢!
答案 0 :(得分:2)
根据您的问题描述,我会采用不同的方式。我将在终端
中运行以下命令rails g model Unit name:string
rails g model Food name:string service_size:integer calories:integer unit:references
Rails会神奇地推断其他一切。
这应该创建具有将单位分配给食物所需的关联的迁移和模型。关于这种关联产生的有趣的事情是食物'属于'一个单位和一个单位'has_many'食物。我是这样做的,这样许多食物记录可以共享同一个单位,而不是通过新记录为您创建的每种食物冗余地分配相同的单位。
编辑:如果您想访问与单位相关的所有食物,那么您应该将has_many:食物添加到单位模型中。