我是唯一一个有一两次把生产环境当成开发环境而搞乱的程序员吗?在这个简短的教程中,我将介绍一个简单的方法,以减少混淆你当前工作的Rails环境的风险。
如何自定义Rails控制台的提示?
默认情况下,Rails控制台会在启动时显示关于当前工作环境的信息。
默认的 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颜色的魔法来突出环境名称。
总结
对我来说,这个简单的黑客技术大大提高了在Rails控制台工作的舒适度。在实施它之前,我在执行任何潜在的破坏性命令之前都会手动运行Rails.env 。我希望把它添加到你的项目中会帮助你避免不必要的错误。