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 %>

誰かがこの問題で私を助けてください

私は本当に助けに感謝します

4

1 に答える 1

1

Policies.joins(:insurances).group("policies.id").countキーが policies.id で、値が各ポリシーの保険の数であるハッシュが得られます。

注: ポリシーに保険がない場合、結果には含まれません。

于 2013-10-17T22:12:53.367 に答える