【发布时间】:2014-12-14 20:38:54
【问题描述】:
Active Admin 提供了在索引页面上显示的自定义过滤器和范围,如下所示:
我的管理 app/admin/compensatory_off.rb 代码是
ActiveAdmin.register CompensatoryOff do
scope :pending, default: true
scope :approved
filter :claim_date, collection: proc { CompensatoryOff.all.map(&:claim_date) }
My Controller for index action :
controller do
def index
@page_title = "Comp-Off"
index! do |format|
if (current_user.has_role? :HRMS_Supervisor)
@compensatory_offs = CompensatoryOff.get_subordinate_employees_comp_offs(current_user).page(params[:page]).per(10)
else
@compensatory_offs = current_user.employee.compensatory_offs.order("compensatory_offs.claim_date DESC").page(params[:page]).per(10) if current_user.employee
end
format.html {
render "active_admin/resource/index"
}
end
end
end
end
我在上面的代码中同时使用了过滤器和作用域。
在我的模型中,我还定义了范围,
class CompensatoryOff < ActiveRecord::Base
scope :pending, ->{where(status: "Pending Approval")}
scope :approved, ->{where(status: "Approved")}
#scope :claim_date_eq, -> (claim_date) {where(claim_date: claim_date)}
end
但在上面的代码中,作用域和过滤器都不起作用。索引页没有显示所有记录。
注意:当我从控制器中删除我的自定义索引操作时,范围和过滤器都可以正常工作。
我的管理 app/admin/compensatory_off.rb 代码是
ActiveAdmin.register CompensatoryOff do
scope :pending, default: true
scope :approved
filter :claim_date, collection: proc { CompensatoryOff.all.map(&:claim_date) }
My Controller for index action :
controller do
end
end
默认情况下如何获取索引操作资源,我想用我自己的条件覆盖索引资源。
任何需要通过索引操作添加的东西,
请任何帮助我实现这一目标,我正在努力寻找结果。
谢谢。
【问题讨论】:
标签: activeadmin ruby-on-rails-4.1