最後の net_insurance を表示するアプリを作成し、Insurance Financing でカウントしましたが、有効期限が切れていて期限切れになっていないときにグループ化してカウントしようとしています
ここに私のテーブル
|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| |expiration_date|
1 2 9888 26/10/2013
2 2 1444 27/10/2013
3 4 2444 28/10/2013
4 4 1445 01/11/2013
|trying to obtain|
|num_policy| |last_net_insurance| |count_InsuranceFinancing_by_IdEnsurance|
12345 3000 2 expired
54654 5000 1 expired, 1 not expired
これは私のコントローラーです
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| %>
<% if Date.today > detail.expiration_date %>
<%= "EXPIRED" %>
<% else %>
<%= "NOT EXPIRED" %>
<% end %>
<% end %>
<% end %>
<% end %>
こんな結果になりました
|num_policy| |last_net_insurance| |count_InsuranceFinancing_by_IdEnsurance|
12345 3000 EXPIRED EXPIRED
54654 5000 EXPIRED NOT EXPIRED
でも私はしたい
|num_policy| |last_net_insurance| |count_InsuranceFinancing_by_IdEnsurance|
12345 3000 2 expired
54654 5000 1 expired, 1 not expired
これを試しましたが、すべてをカウントしており、有効期限でグループ化する必要があります
<% policy.insurances.last(1).each do |insurance| %>
<%= insurance.insurance_financing_details.size %>
<% end %>
|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.each do |detail| %>
<% if Date.today > detail.expiration_date %>
<%= "YES".size %>
<% else %>
<%= "NOT".size %>
<% end %>
<% end %>
<% end %>
そしてまた試した
<% policy.insurances.last(1).each do |insurance| %>
<% insurance.insurance_financing_details.each do |detail| %>
<% if Date.today > detail.expiration_date %>
<%= "Yes".count %>
<% else %>
<%= "NO".count %>
<% end %>
<% end %>
<% end %>
しかし、私は得ています
|num_policy| |last_net_insurance| |count_InsuranceFinancing_by_IdEnsurance|
12345 3000 3 3
54654 5000 3 3
どうすればこの問題を解決できますか???
誰かがこの問題で私を助けてください
ありがとう