0

我正在使用 Ruby on Rails,并编写了一个应用程序来计算我认为的结果,但它不起作用。

这是我的表:

|policies|
 |id| |num|
  1    1234
  2    5678
  3    1551    

|debts|
 |id| |policy_id|
  1        1
  2        1
  3        2
  4        2
  5        3
  6        2

我要这个:

 |policy_id|   |count_num|
    1               2
    2               3
    3               1       

这是我的控制器:

class PolicyManagement < ApplicationController
  def generate_print_cupons
     @search = Debt.find(:all,:group=>:policy_id)
  end
end

这是我的模型:

class Debt < ActiveRecord::Base
   belongs_to :policy
end

class Policy < ActiveRecord::Base
   has_many :debts
end

这是我的看法:

  <% @search.each do |debt| %>
     <%= debt.policy.num %>       
  <% end %>

我正在数数debt.policy.num

我试过了:

  <% @search.each do |debt| %>
     <%= debt.count(:num) %>       
  <% end %>
  undefined method `count' for #<ActiveRecord::Associations::BelongsToAssociation:0x7fb5afefd050>

我也试过:

  <% @search.each do |debt| %>
     <%= debt.num.count %>       
  <% end %>

  undefined method `count' for 41:Fixnum

请问有人可以帮我吗?

4

1 回答 1

2

如果目标是计算debts每个的数量policy,为什么不执行计数Policy而不是Debt

您的控制器将更改为:

class PolicyManagement < ApplicationController
  def generate_print_cupons
     @search = Policy.all
  end
end

那么你的观点可能是微不足道的:

<% @search.each do |policy| %>
   <%= policy.debts.size %>       
<% end %>
于 2013-10-28T16:52:53.320 回答