食べ物とその栄養素を表示する Rails アプリを開発しています。ユーザーが見たい栄養素だけを表示したい。
だから、私はモデルを持っています:
- 食べ物:
- 栄養素:
- FoodNutrient: 各食品の各栄養素の量を指定します
- UserNutrient: ユーザーが知りたい栄養素を指定します。何千もの食品と 100 を超える栄養素があります
この種の複雑さに対処する方法に関するヒントを提供するいくつかの情報源を見ました (今のところ、Arel を試すことを検討しています)。ただし、これらのソースは通常、例を提供しておらず、ビューでこれを処理する方法についてのヒントも提供していません。私はこれを見つけましたが、特に関連する大規模なデータに関して、この問題についてもっと多くの意見が欲しいです.
では、インデックス ビューでこれを処理するにはどうすればよいでしょうか。
私が持っているもう 1 つの疑問は、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
上記の行ごとに 1 つずつ反復する Food に 1 つのループがあることを理解しています。また、最初のループ内で UserNutrient を繰り返し処理して、各食品の栄養素の量を表示する必要があります (このデータは UserNutrient にあります)。主な問題は、特にテーブルに大量のデータがあることを考慮して、これらのループを行う方法です。これも少し似ているようですが、よくわかりませんでした。
私のもう1つの疑問は、構造が最良のものであるかどうかです。FoodNutrient テーブルと Food テーブルをマージできます。