我正在开发一个Rails应用程序,它将显示食物的营养成分。我想只显示用户想要看到的营养素。
所以,我有模特:
我看到几个来源提供了如何处理这种复杂性的提示(现在我正在考虑尝试使用Arel)。但是,这些来源通常不会提供示例,也不会提示我们应该如何在视图上处理此问题。我找到了this one,但我会更喜欢这个问题,特别是涉及的大数据。
那么,在我的索引视图中处理这个问题的最佳方法是什么?
我的另一个疑问是,如果使用FoodNutrient模型对性能更好,或者最好在Food模型中包含每个新列代表营养素的列。我认为FoodNutrient赌注更好,因为用户会选择他会看到哪些营养素,但我不确定。
我将不胜感激任何可能对我有帮助的例子,解释,建议,反馈或参考。
被修改
由于有些人的评论不理解我的问题,我会试着总结一下。
我想从前3个模型中获取数据,最后一个(UserNutrient)用于减少向用户显示的行数。
因为我想展示类似的东西:
Food Name | Nutrient 1 | Nutrient 2 | Nutrient 3
_______________________________________________________
Food 1 10 40 7.3
Food 2 9 4.4 9.1
据我所知,我会在Food上有一个循环,它会迭代上面显示的每一行。而且我还必须在第一个循环内迭代UserNutrient以显示每种食物上的营养素数量(此数据在UserNutrient上)。主要问题是如何进行这些循环,特别是考虑到表格将包含大量数据。 This one似乎有点类似,虽然我不太了解。
我怀疑的是结构是否最好。 FoodNutrient和Food表可以合并。
答案 0 :(得分:0)
我已经研究过这个问题,现在我决定将FoodNutrient和Food表/模型合并为Food。 我相信有很多行的FoodNutrient会更糟糕,因为它会有一个巨大的索引。比有很多列的食物表更糟糕。
这篇文章帮助我决定:
http://rails-bestpractices.com/posts/58-select-specific-fields-for-performance
如果您有需要添加的内容,请回答问题或添加评论。