如何在嵌套资源中计数并显示结果?

时间:2017-01-23 11:46:44

标签: ruby-on-rails count

我正在基于PostgreSQL在rails中构建一个工作板。我想在雇主页面的索引上计算并显示每个雇主的工作机会数量。这种计数的代码是什么?

我创建了一个嵌套资源,并通过以下方式关联我的雇主和商品模型:

class Employer < ActiveRecord::Base
  has_many :offers, dependent: :delete_all
end

1 个答案:

答案 0 :(得分:1)

您应该使用counter_cache,即在雇主表格中添加额外的列(offer_count)&amp;在报价表中输入时更新计数器。有关更多详细信息,请查看http://guides.rubyonrails.org/association_basics.html

中的counter_cache

您的迁移应该

 def change
    add_column :employers, :offers_count, :integer, default: 0
    Employer.reset_column_information
    Employer.all.each do |p|
      Employer.update_counters p.id, :offers_count => p.offers.length
    end
  end