最近,我一直在使用better_errors gem,我发现实时shell功能(基本上是你视图中嵌入的Rails控制台)非常有用。我希望能够访问这种可用于调试/诊断目的的实时shell,即使我没有错误。这将非常适合嵌入我的应用程序控制器并限制管理员访问,以便我可以在登台或prod服务器环境中使用它。
是否还有其他类似的工具,或者是从better_errors中剥离实时shell并将其嵌入我的视图中的方法?
答案 0 :(得分:2)
你看过pry了吗?它在技术上不像better_errors,它在浏览器中打开一个控制台,但它的功能相同。基本上,您只需在代码中的任何位置添加binding.pry
,即使在您的视图中,也可以在代码中创建一个断点,让您在该时间点运行任何您想要的内容。
还有一个关于如何使用它的导轨http://railscasts.com/episodes/280-pry-with-rails
作为替代方案,您应该只能在代码中的任何位置抛出一个错误,这将在代码中的那一点显示better_errors页面。
除了打开控制台之外,我不确定在Staging / Production上有什么办法。尽管如此,您可能永远不会希望在生产代码上提供对代码的访问级别。此时,任何可以访问该页面的人都可以完全访问该数据库。即使它仅限于开发人员,也似乎存在潜在的安全风险。