2013-10-29 42 views
0

我做了一個應用程序來顯示最後net_insurance但是當我嘗試在保融資來算計數表的關係問題

這裏我表

|policies| 
|id| |num_policy| 
    1  12345 
    2  54654 

|insurances| 
|id| |id_policy| |net_insurance| 
    1  1   1000 
    2  2   2000 
    3  2   3000 
    4  1   5000  

|insurance_financing|  
    |id| |id_ensurance| |number| 
    1   2   9888 
    2   2   1444 
    3   4   2444 
    4   4   1445 


|trying to obtain| 
    |num_policy| |last_net_insurance| |count_InsuranceFinancing_by_IdEnsurance| 
     12345   3000       2 
     54654   5000       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 %> 
    <% policy.insurances.last(1).each do |insurance| %> 
     <% insurance.insurance_financing_details.each do |detail| %> 
      <%= detail.number %> 
     <% end %> 
    <% end %> 
<% end %> 

我得到這個結果

|num_policy| |last_net_insurance| |count_InsuranceFinancing_by_IdEnsurance| 
     12345   3000       9888 1444 
     54654   5000       2444 1445 

但我想

|num_policy| |last_net_insurance| |count_InsuranceFinancing_by_IdEnsurance| 
     12345   3000       2 
     54654   5000       2 

我嘗試這個代碼,而不是工作

 <% policy.insurances.last(1).each do |insurance| %> 
     <% insurance.insurance_financing_details.size %> 
    <% end %> 

Tr滅蠅燈這一點,不工作

 <% policy.insurances.last(1).each do |insurance| %> 
     <% insurance.insurance_financing_details.count %> 
    <% end %> 

而且也試過,但仍然沒有工作

 <% policy.insurances.last(1).insurance_financing_details.size %> 

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

我可能喜歡幫助

+0

究竟是什麼問題 - 你得到了你沒有預料到的結果?如果您從控制檯嘗試此代碼會發生什麼情況?此外,請注意,'belongs_to'關係的慣例是使用具有約定'belongs_to_model_id'的外鍵列(除非另有指定) - 所以'id_policy'應該是'policy_id','id_insurance'應該是'insurance_id'。 – PinnyM

+0

我正在計算這個<%policy.insuranceslast(1)。每個做法|保險| %> <%insurance.insurance_financing_details.each do | detail | %> <%= detail.number%> <% end %> <% end %> –

+0

我添加了更多細節並編輯了它可以再次檢查嗎? –

回答

1

您需要使用<%=代替<%當您想要渲染結果時:

<% insurance.insurance_financing_details.size %> 

應該是:

<%= insurance.insurance_financing_details.size %> 

否則,它會呈現(你的情況)的塊迭代的集合。

+0

謝謝先生:)有時一個符號可能很難理解1分,謝謝 –

+0

Pinnny我有另一個問題使用相同的信息?我怎麼能再問一次?或需要重新發布? –

+0

@CarlitosMorales:如果問題與前一個問題本身無關(即使與數據/代碼相關),您應該提出另一個問題 - 如果需要,您可以複製/粘貼代碼。否則,問題是什麼? – PinnyM