我正在使用红宝石 1.8.7
大家好,我正在尝试将条件放入数组中,但出现错误。我想
if policy.date_ini >= insurance.initial_date then
do sum of all net_ensurance where date_ini >= initial_date
else
show the last insurance
end
表
|policies|
|id| |date_ini| |num_policy|
1 2013-02-30 1234
|insurances|
|id| |policy_id| |initial_date| |net_ensurance|
1 1 2013-03-30 1000
2 1 2013-02-30 2000
3 1 2012-12-05 5000
我应该有
|num_policy| |sum_net_ensurance|
1234 3000
这是我的控制器
@policies = Policy.find(:all)
这是我的模型
class Policy < ActiveRecord::Base
has_many :insurances
end
class Insurance < ActiveRecord::Base
belongs_to :policy
end
这是我的看法
<% @policies.each do |policy| %>
<%= policy.num_policy %>
<% if policy.date_ini >= policy.insurances.initial_date %>
<%= policy.insurances.sum(:net_insurance) %>
<% else %>
<% policy.insurances.last(1).each do |insurance| %>
<%= insurance.net_insurance %>
<% end %>
<% end %>
<% end %>
我遇到了这个错误
undefined method `initial_date' for #<Class:0x7f30aa1ea398>
我也试过
<% if policy.date_ini >= policy.insurances.try(:initial_date) %>
<%= policy.insurances.sum(:net_insurance) %>
<% else %>
<% policy.insurances.last(1).each do |insurance| %>
<%= insurance.net_insurance %>
<% end %>
<% end %>
请有人可以帮助我吗?
我将非常感谢帮助