最近,我一直在使用 better_errors gem,我发现 live shell 功能(基本上是嵌入在您的视图中的 Rails 控制台)非常有用。我希望能够访问这种可用于调试/诊断目的的实时 shell,即使我没有错误。这将是很好的嵌入到我的应用程序控制器中并限制管理员访问的东西,这样我就可以在登台或生产服务器环境中使用它。
是否有任何其他类似的工具,或者可能有一种方法可以从 better_errors 中去除实时 shell 并将其嵌入到我的视图中?
最近,我一直在使用 better_errors gem,我发现 live shell 功能(基本上是嵌入在您的视图中的 Rails 控制台)非常有用。我希望能够访问这种可用于调试/诊断目的的实时 shell,即使我没有错误。这将是很好的嵌入到我的应用程序控制器中并限制管理员访问的东西,这样我就可以在登台或生产服务器环境中使用它。
是否有任何其他类似的工具,或者可能有一种方法可以从 better_errors 中去除实时 shell 并将其嵌入到我的视图中?
你看过pry吗?从技术上讲,它不像 better_errors 那样在浏览器中打开控制台,但它的功能相同。基本上,您只需binding.pry
在代码中的任何位置添加,甚至在您的视图中,以在代码中创建一个断点,让您在该时间点运行您想要的任何东西。
还有一个关于如何使用它的 railscast http://railscasts.com/episodes/280-pry-with-rails
作为替代方案,您应该能够在代码中的任何地方抛出错误,这将在代码中的该点显示 better_errors 页面。
除了打开控制台之外,我不确定在暂存/生产中执行此操作的任何方法。无论如何,您可能永远都不想在生产环境中授予对代码的这种级别的访问权限。此时,任何可以访问该页面的人都可以完全访问数据库。即使它仅限于开发人员,它似乎也存在潜在的安全风险。