如何以表格形式写入 Mongodb 哈希数组?

How to write to Mongoid array or hashes in forms?

我有一个食谱模型和一个配料模型,在我的食谱模型中我有一个名为配料的类型数组字段。在此数组中,我试图存储从成分模型中选择的成分的 ID 以及该成分的数量。 例如

['chicken',400,'rosemary',5, ...]

我尝试创建的视图看起来像这样

<div class="field">
<%= f.label :ingredients %><br>
<%= f.collection_select %> #ingredients from db
<%= f.text_field %> #Ammount in grams
</div>

我的想法是,在列出所有成分时,我必须做参考

ingredients[1] || ingredients[2]
ingredients[3] || ingredients[4]
.
.
ingredients[n] || ingredients[n]

基本上,表单中每个字段的内容都会按顺序添加到数组中。

我想像这样存储它们的原因是一旦我有了成分 ID 列表,我就需要查询成分数据库并计算总营养价值,例如卡路里或蛋白质,但这是一个不同的问题。

我强烈建议在此处使用嵌入式文档来获取成分。该数组可能很好而且紧凑,但是为嵌入式文档创建表单要容易得多。您还将有更多的可能性通过成分字段查询数据库。

PS:对于数组,使用text_field_tag 'something[]'来创建数组。