【问题标题】:What do the colors of output in rails console and Rails server log mean?rails 控制台和 Rails 服务器日志中的输出颜色是什么意思?
【发布时间】:2015-10-04 19:25:28
【问题描述】:

我在通用终端内的 Ubuntu 14.04 中运行 rails serverrails console(应用程序仅称为“终端”)。

每当我运行涉及数据库的命令时,控制台都会输出它发送的 SQL 查询,但有时文本是绿松石色,有时是紫​​色。例如在这个控制台输出中:

2.2.2 :025 >   pl = ProjectLevel.find_by(name: 'Premium')

ProjectLevel Load (0.5ms)  SELECT  "project_levels".* FROM "project_levels" WHERE "project_levels"."deleted_at" 
IS NULL AND "project_levels"."name" = $1 LIMIT 1  [["name", "Premium"]]

=> #<ProjectLevel id: 1, name: "Premium", deleted_at: nil, created_at: "2015-07-15 15:45:40", updated_at: "2015-07-15 15:45:40"> 

(这里显示的颜色和我的控制台不一样)

ProjectLevel Load (0.5ms) 的部分有时会是青绿色,但有时会是紫色,但文本的其他部分都是。这种颜色真的意味着什么吗?它是否告诉我有关查询成功或返回数据的信息?通常在 Rails 中这样的事情非常直观(比如当一个测试套件返回绿色文本和红色文本来告诉你测试是否成功)但我似乎找不到任何关于这些颜色来自哪里的信息

【问题讨论】:

    标签: sql ruby-on-rails ruby ubuntu rails-console


    【解决方案1】:

    在 Rails 5 中,颜色表示查询的类型:

    • 选择蓝色

    • 黄色表示更新

    • 绿色表示插入

    • 红色表示删除

    除了alter tablebegin/commit 语句等各种其他颜色。


    在 Rails 5 之前,颜色没有任何意义。它们只是来回交替,因此您可以轻松判断一个查询在哪里停止,下一个查询从哪里开始。

    10.times { Photo.all } 产生:

    【讨论】:

    • 这对我来说似乎违反直觉。一直以来,我一直在想紫色的意味着查询失败(我没有足够的空间来看到颜色只是交替出现)。但至少现在我知道了!
    • 有没有办法自定义颜色?
    • 没关系,我找到了,只需编辑 ~/.rvm/gems/ruby-2.3.1/gems/activerecord-5.1.4/lib/active_record/log_subscriber.rb 并编辑颜色并重新启动服务器。
    • @jedi 回复迟了,但这是个坏主意。您永远不应该编辑已安装的 gem!这些更改不会跟随您的项目(每个其他安装都会从 ruby​​gems.org 获得 real gem),如果您升级 gem,它们将会丢失。
    • 这里的load (0.5ms) 是什么意思?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多