2012-11-24 2 views
0

3 나는 다음과 같은 모델을 가지고 다음과 같이레일스에서 ​​각각의 관련 레코드의 속성을 합치십니까? 내 레일에서

Animal 
Claim 
Exclusion 

모델의 관계는 다음과 같습니다

animal_id, con1, con2, con3, con4, con5 

다음 제외 테이블에서

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

을 나는 다음과 같은 열이 청구 표에는 다음과 같은 항목이 있습니다.

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

동물과 hashone 동물을 제외 has_one 동물. Animal has_many claim 및 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 동물을 가지고있다.'이것은 "한 동물에게는 배제가 있어야하고 한 동물에게는 배척이되어야한다.", 맞습니까? 또한 당신의 모델 관계 목록에서, 주장은 다음과 같아야합니다 :'동물 소유권 주장'. –

+0

죄송합니다, 정확합니다. – dannymcc

답변

2

현재 동물이 당신이 sum 방법을 사용하는 모든 주장에 걸쳐 특정 조건에 대한 값의 합계 수, @animal 호출하는 경우 :보기에

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

관련 문제