2013-10-17 47 views
0

我做了一個應用程序來顯示從另一個表中的列,但我想知道如何計算,而不是顯示信息如何計算我的視圖中的列?

這裏我表

|policies| 
|id| |num_policy| 
    1  11111 
    2  22222 

|insurances| 
|id| |id_policy| |net_insurance| 
    1  1   33333 
    2  1   44444 
    3  2   55555 
    4  2   66666 

|insurance_financing|  
    |id| |id_ensurance| |number| 
    1  1   1544 
    2  2    858 
    3  3   8484 
    4  4    848 

我試圖做

結果
|num_policy| |count| 
    11111  2 
    22222  2 

這是我的控制器

class PolicyController < ApplicationController 
    def generate_print 
     @policies= Policy.find(:all) 
    end 
end 

這是我的模型

class Policy < ActiveRecord::Base 
    has_many :insurances 
end 

class Insurance < ActiveRecord::Base 
    belongs_to :policy 
    has_many :insurance_financing_details 
end 

class InsuranceFinancingDetail < ActiveRecord::Base 
    belongs_to :insurance 
end   

這是我的看法

<% @policies.each do |p| %> 
    <%= p.num_policy %> 

    <% p.insurances.each do |insurance| %> 
     <% insurance.insurance_financing_details.each do |detail| %> 
      <%= detail.number %> 
     <% end %> 
    <% end %> 
<% end %> 

請有人可以幫我解決這個問題

我可能喜歡幫助

回答

1

Policies.joins(:insurances).group("policies.id").count會給你一個散列結果,其中關鍵是policies.id,價值是每項政策的保險計數。

注意:如果政策沒有任何保險,它將不會包含在結果中。

+0

但你的代碼是爲rails 3和我標記rails 2,我該怎麼做? –

+0

沒有注意到Rails 2標籤。也許像這樣:'Insurance.count(:group =>「insurances.policy_id」)' – steakchaser

+0

我得到了未定義的方法'num_policy'[1,2]:Array –