如何配置使用rack-mini-profiler返回json响应的rails控制器?

我在rails 3.2项目中使用rack-mini-profiler。

在gemfile中:

gem 'rack-mini-profiler' 

一切都很好。 但我的应用程序主要是一组json端点。 因此,虽然能够检查html页面的性能非常有用,但我还希望能够看到返回json的控制器的性能。

我的控制器示例:

 class UsersController < BaseController def json_method # you don't see the mini profiler ui for this controller render json: { users: [:foo, :bar]} end end 

如果我去localhost:3000/users/json_method ,我会看到我的json响应但不是profiler ui。

在开发过程中,默认情况下,rack-mini-profiler gem会收集以前的JSON调用,并将其显示在可从HTML页面访问的菜单中。 无需更改代码。

因此,发出您的JSON请求,然后点击任何其他HTML页面,它将在列表中可用。 我们用这个效果很好。 如果您的Rails应用程序仅是JSON API服务,请确保您的公用文件夹中至少有一个404.html,然后点击:

 http://localhost/404.html 

如果rack mini profiler无法显示结果,它将收集它们,直到它可以在下一个HTML页面上。 所以,我使用的解决方案是:

发出JSON请求,然后点击我选择的HTML页面。 将显示结果以及最新的HTML配置文件。

http://tech.eshaiju.in/blog/2016/02/25/profile-api-endpoints-using-rack-mini-profiler/

作为第一个解决方案,您可以将格式设置为html,并在html页面内呈现:

控制器:

 class UsersController < BaseController def json_method @users_json { users: [:foo, :bar]} render 'index', formats: ['html'] end end 

在app / views / users / index.html.erb中:

 Users:
<%= @json.inspect %>

我不太关心我的json结果,现在我有了剖析ui。

我在不改变控制器的情况下使用剖析ui的解决方案会好得多。