2012-11-24 68 views
0

在我的Rails 3我有以下型號:Rails中每個相關記錄的和屬性?

Animal 
Claim 
Exclusion 

模型關係如下:

Animal has_one exclusion 
Animal has_many claims 
Claim has_one Animal 
Exclusion belongs_to Animal 

在排除表,我有以下欄目:

animal_id, con1, con2, con3, con4, con5 

在索賠表中,我有以下列:

animal_id, con1, con2, con3, con4, con5, description, date 

排除了一個動物和一個要求has_one動物。動物has_many聲稱和has_one排除。

因此,用戶創建一個索引,在每個con *列旁邊添加一個值。我怎樣才能(在動物視圖中)總計爲每個條件索賠的總額?

例如;在我的動物視圖:

Condition 1 = 10.00 
Condition 2 = 20.00 
Condition 3 = 0.00 
Condition 4 = 200.00 
Condition 5 = 232.22 

沿着上述條件的值是從下面的權利要求採取:

ID, con1, con2, con3, con4, con5, animal_id 
------------------------------------------- 
1, 5.00, 10.00, 0.00, 100.00, 200.00, 123 
2, 5.00, 10.00, 0.00, 100.00, 32.22, 123 

所以每個條件的值被跨越屬於當前動物所有的權利要求概括。

這可能嗎?

+0

Nitpicking,但:「排除has_one動物和索賠has_one動物.'這應該是'一個排除屬於一個動物,一個索賠屬於一個動物.',對嗎?同樣在你的模型關係列表中,聲明應該是:'Claim belongs_to Animal'。 –

+0

對不起,你是對的。 – dannymcc

回答

2

如果您當前的動物被稱爲@animal,那麼你就可以值相加跨使用sum方法都要求一個特定的條件:

con1_sum = @animal.claims.sum(:con1) 

在你看來,你可以做這樣的事情:

Condition 1 = <%= @animal.claims.sum(:con1) %> 
Condition 2 = <%= @animal.claims.sum(:con2) %> 
Condition 3 = <%= @animal.claims.sum(:con3) %> 
Condition 4 = <%= @animal.claims.sum(:con4) %> 
Condition 5 = <%= @animal.claims.sum(:con5) %> 

在控制器操作中計算這些值可能更有意義,而不是直接在視圖中計算這些值,但無論如何,您會明白這一點。

+0

完美,謝謝! – dannymcc

+0

非常歡迎! –

+0

+1,因爲很容易忘記ActiveRecord :: Calculations(包括我自己:) – vpsz

相關問題