如何在表单中写入Mongoid数组或哈希值?

时间:2016-03-01 16:14:09

标签: ruby-on-rails mongoid

我有一个食谱模型和一个成分模型,在我的食谱模型中我有类型阵列的字段称为成分。在这个数组中,我试图存储成分模型中所选成分的ID以及该成分的数量。 e.g。

['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列表,我就需要查询成分DB并计算总营养价值,如卡路里或蛋白质,但这是一个不同的问题

1 个答案:

答案 0 :(得分:1)

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

PS:对于arrarys使用text_field_tag 'something[]'制作数组。