Active Admin自定义过滤器有很多关联

时间:2016-09-05 01:36:05

标签: ruby-on-rails activeadmin

我正在尝试在Active Admin中实现自定义过滤器:

模特:

Employer < ActiveRecord::Base 
has_many :jobs
has_many :job_applications, through :jobs 

现在模特:

JobApplication < ActiveRecord ::Base 
belongs_to: jobs

具有关于某个应用程序状态的状态枚举。大约有8个不同的领域。我想在ActiveAdmin.register Employer do ...中创建一个过滤器,以获取状态为“employer_accepted”的JobApplciations数。

我尝试过使用counter_cache并阅读有关搜索方法的内容,但我正在努力制作有效的方法。我仍然相对较新的铁路,所以不确定谷歌的内容。如果我能提供更多信息,请告诉我。

提前致谢

1 个答案:

答案 0 :(得分:0)

我想您想要获取具有给定状态employer_accepted的JobApplications数量。

您可以使用范围执行此操作。

在模型中定义范围 app/models/employer.rb

scope :accepted, -> { joins(:job_applications).where("job_applications.status = 'employer_accepted'")} 

然后在activeadmin页面上app/models/employer.rb

scope :accepted, show_count: false