これはシンプルでなければならないことはわかっていますが、私は本当に失われています。Rails 4 - 合計値は外部キーでグループ化されています
3つのモデル:ジョブ、タスクやオペレーション、次のように:
Job
has_many :tasks
Task
belongs_to :job
belongs_to :operation
Operation
has_many :jobs
Job
はあなたが必要とするどのように多くの作品を私に伝え属性、total_pieces
を、持っています。 それぞれJob
の場合、異なるOperations
(切断、穴あけなど)に属することができるTasks
の数を追加することができます。また、すべてのタスクに対して多数の番号を設定することができます。 Job
にはどれくらいの数のOperations
が必要かわかりませんが、新しいTask
が挿入されたときには、その番号の数を知らせる必要があります。Operation
私は、彼らはまだ50個をカットするために、私は追加した場合、80 仮にをドリルダウンする必要があるユーザーに警告する必要が
Job 1: total_pieces=100
- Task 1: operation 1(cutting), pieces=20
- Task 2: operation 1(cutting), pieces=30
- Task 3: operation 2(drilling), pieces=20
:
私たちは例を作ってみましょう
- Task 4: operation 3(bending), pieces=20
彼らはまだ80個を曲げる必要があることをユーザーに警告する必要があります。
これまでのところ私はmap
を使用して、各Job
ためOperations
のすべての種類を一覧表示するために管理してきましたが、今はJob
に同じOperation
タイプでTask
のすべての部分を合計する必要がある、とだけのものOperations
存在についてそのJob
に属するTasks
map
を使用してこれを行う方法はありますか?あるいは、私は手動でクエリを書く必要がありますか?
EDIT:これは私が現時点でパッチを当てたものです。仕事で
方法operations_applied
は私Job
のためにキューイングTasks
内のすべてのOperations
USENDのIDのリストを与えます。
もう1つの方法pieces_remaining for(operation)
は、残りの部分を私に返します。operation
。
最後に、私が必要としているJob
のビューでは、すべてを反復します。operations_applied
すべてを印刷します。pieces_remaining_for
。
私はこれが特にエレガントではないことは分かっていますが、これまでのところこれを改善するためのアイデアはありますか? ありがとうございます。
ありがとう、これは私のパッチを当てた解決策よりもはるかに優れています! –