在活动管理员中禁用特定模型的缓存



基本上,我希望能够在活动管理导航栏中有一个计数值,该值根据查询进行更新。但似乎已注册的模型被缓存,因此也缓存了已注册模型提供的导航标签。

是否可以更改此默认缓存行为?

ActiveAdmin.register ChangeRequest do
config.sort_order = "created_at_desc"
actions :all, except: [:show]
menu label: "Change Requests (#{ChangeRequest.pending.count})"
....
end

如果可能的话,"菜单标签:"应该在每次重新加载时更新...

您可以尝试使用 ajax 来实现此目的。

假设您有一个型号名称Change Request

在控制器中添加admin/change_request集合操作

collection_action :total_pending do
render json: { total: ChangeRequest.pending.count }
end

active_admin.js.coffee文件中添加此 AJAX 调用

$.ajax
url: '/en/admin/change_requests/total_pending'
success: (data) ->
$('#change_requests a').text("Custom text #{data.total}")

注意:HTML 元素 ID 和 URL 可以根据您的型号和 控制器名称

也许proc会在这里工作?

menu label: proc{"Change Requests (#{ChangeRequest.pending.count})"}

最新更新