Rails Quick Tip - 在控制台提示中显示当前环境的操作实例

59 阅读1分钟

我是唯一一个有一两次把生产环境当成开发环境而搞乱的程序员吗?在这个简短的教程中,我将介绍一个简单的方法,以减少混淆你当前工作的Rails环境的风险。

如何自定义Rails控制台的提示?

默认情况下,Rails控制台会在启动时显示关于当前工作环境的信息。

image.png

默认的 Rails 控制台提示

这种设置的问题是,一旦你运行了几个命令,环境名称就会被推到屏幕之外。如果你在多个终端标签中工作,那就太容易混淆环境了。

你可以通过在你的Rails项目中添加以下文件来轻松改善它。

config/initializers/console_prompt.rb

require 'irb'

env = Rails.env
env_color = if env.production?
  "\e[31m#{env}\e[0m"
else
  env
end

IRB.conf[:PROMPT] ||= {}
IRB.conf[:PROMPT][:RAILS_APP] = {
  PROMPT_I: "YourApp (#{env_color}) > ",
  PROMPT_N: nil,
  PROMPT_S: nil,
  PROMPT_C: nil,
  RETURN:   "=> %s\n"
}

IRB.conf[:PROMPT_MODE] = :RAILS_APP

并在应用配置中启用它。

config/application.rb

console do
  ARGV.push "-r", root.join("config/initializers/console_prompt.rb")
end

现在你的控制台提示将始终显示当前的Rails环境。如果你是在生产环境中,我们可以用一点ANSI颜色的魔法来突出环境名称。

image.png

image.png

Slack自定义控制台提示的Abot

总结

对我来说,这个简单的黑客技术大大提高了在Rails控制台工作的舒适度。在实施它之前,我在执行任何潜在的破坏性命令之前都会手动运行Rails.env 。我希望把它添加到你的项目中会帮助你避免不必要的错误。