我有一个Rails 4.2.9应用程序,它使用rails_admin gem来管理资源。所有者大量使用管理面板,他想生成报告。该功能在本地工作,但在暂存和制作时,我得到504 - gateway timeout
。
我猜问题是生成了很多对象,因此请求需要花费太多时间。这就是我想将导出操作委托给后台工作的原因。但问题是,我无法找到代码中执行导出操作的位置,而且我不应该在工作程序中包含哪个部分。与导出有关的唯一部分位于rails_admin/application_controller.rb
,但我猜不是这样:
def log_info
params_to_log =
params.except(:authenticity_token).merge(current_user_id: current_user.try(:id)).to_s
Rails.logger.info("Generating admin report: #{params_to_log}")
end
def _authenticate!
log_info if action_name == "export" && request.method == "POST"
instance_eval(&RailsAdmin::Config.authenticate_with)
end
我对它进行了一些研究,这似乎是一个常见问题,但我无法找到解决方案。如果你能回答我的问题或建议更好的解决方案,我将非常感激。