我正在基于PostgreSQL在rails中构建一个工作板。我想在雇主页面的索引上计算并显示每个雇主的工作机会数量。这种计数的代码是什么?
我创建了一个嵌套资源,并通过以下方式关联我的雇主和商品模型:
class Employer < ActiveRecord::Base
has_many :offers, dependent: :delete_all
end
答案 0 :(得分:1)
您应该使用counter_cache
,即在雇主表格中添加额外的列(offer_count)&amp;在报价表中输入时更新计数器。有关更多详细信息,请查看http://guides.rubyonrails.org/association_basics.html
您的迁移应该
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