浏览器中的 Rails 控制台(按需加载)
在为我的新书《Realtime Rails》进行研究和处理一些细节时,我遇到了一个问题:在终端的 rails console
中对 ActiveRecord
对象进行的更改并没有在网页浏览器中显示出来。在开发环境中,根据 ActionCable 和 Rails 服务器的默认设置,为了使广播显示出来,它需要使用同一个进程,而不是由终端中的 rails console
分开启动的进程。
另外,按需在浏览器中显示控制台也是一个非常酷的设置。你可以实时查看更改并与浏览器中的对象进行交互。
如何设置它提示
如果你使用的是较新版本的 Rails,这个 gem 应该已经包含在内了,因为 Rails 已经有一段时间在默认的 Gemfile 中添加了web-console
gem,以便在异常页面中显示浏览器中的控制台。
如果你需要自己在浏览器中设置 Rails 控制台,你将需要在 Gemfile
中添加 web-console
gem:
gem 'web-console', group: :development
进入全屏模式 退出全屏模式
然后,运行 bundle install
来安装 gem。
安装完成后,您可以通过在视图文件中添加<%= console %>
来添加一个web控制台,然后在浏览器中与Rails控制台进行交互。
如果你想让这个过程更方便,你可以添加路由、控制器和视图(仅用于开发环境),以便在应用程序的特定页面中通过浏览器显示出来。
首先,添加仅用于开发的路由:
如果 Rails.env.development?
get '/console', to: 'console#show'
end
进入全屏模式 退出全屏模式
然后,创建控制器:
class ConsoleController < ApplicationController
def 显示
end
end
进入全屏模式 退出全屏模式
最后,视图:
<h1>Rails 控制台</h1>
<%= console %>
进入全屏模式 退出全屏模式
现在,当你在开发环境中访问 /console
时,你将在浏览器中看到一个控制台。
另一个想法是在应用程序的页脚中添加一个控制台链接。这样,你可以从应用程序的任何页面轻松访问控制台。
注意
Web 控制台有 CSS 使其固定在页面底部,因此始终可见。当你想在应用程序的任何现有页面中添加时,无需添加额外的 CSS。
然后,在你的 application.html.erb
布局文件中添加控制台链接,但由于我们不依赖于路由来仅在开发环境中显示控制台,因此需要在模板中添加一个条件检查:
<% if Rails.env.development? %>
<%= console %>
<% end %>
进入全屏模式 退出全屏模式
就我个人而言,我更希望控制台出现在特定的页面上,但如果你希望控制台在应用程序的每一页都可用,这也是一个不错的选择。
共同学习,写下你的评论
评论加载中...
作者其他优质文章