【问题标题】:rake routes producing strange characters and breaks `| less`耙路线产生奇怪的字符并中断`|少`
【发布时间】:2011-08-29 00:31:48
【问题描述】:

我正在尝试这样做:

rake routes | less

但它会产生以下奇怪的字符,并破坏less,使其无法正确搜索或响应。这是新的,并且已经使用了几年。我的系统上的某些东西发生了变化,我不知道如何停止或更改它!我怎样才能避免这个问题?

^[[1m^[[36mSQL (0.7ms)^[[0m  ^[[1mdescribe `roles_users`^[[0m                                                                                                                                               
  ^[[1m^[[35mSQL (0.9ms)^[[0m  describe `teams_users`
  ^[[1m^[[36mSQL (1.0ms)^[[0m  ^[[1mdescribe `instructors_media_clips`^[[0m
  ^[[1m^[[35mSQL (0.7ms)^[[0m  describe `collections_packs`
  ^[[1m^[[36mSQL (0.7ms)^[[0m  ^[[1mdescribe `lessons_songs`^[[0m
  ^[[1m^[[35mSQL (0.9ms)^[[0m  describe `media_clips_packs`
  ^[[1m^[[36mSQL (0.9ms)^[[0m  ^[[1mdescribe `instructors_media_clips`^[[0m
  ^[[1m^[[35mSQL (1.0ms)^[[0m  describe `related_media_clips`
  ^[[1m^[[36mSQL (0.7ms)^[[0m  ^[[1mdescribe `lesson_instructors`^[[0m
  ^[[1m^[[35mSQL (0.8ms)^[[0m  describe `collections_packs`
  ^[[1m^[[36mSQL (0.6ms)^[[0m  ^[[1mdescribe `media_clips_packs`^[[0m
  ^[[1m^[[35mSQL (0.8ms)^[[0m  describe `roles_users`
  ^[[1m^[[36mSQL (0.7ms)^[[0m  ^[[1mdescribe `lessons_songs`^[[0m
  ^[[1m^[[35mSQL (0.8ms)^[[0m  describe `teams_users`
                  admin_admin_main GET    /admin/admin/main(.:format)                   {:controller=>"admin", :action=>"index"}
                  new_user_session GET    /:locale/members/sign_in(.:format)            {:controller=>"sessions", :action=>"new"}
                      user_session POST   /:locale/members/sign_in(.:format)            {:controller=>"sessions", :action=>"create"}
              destroy_user_session GET    /:locale/members/sign_out(.:format)           {:controller=>"sessions", :action=>"destroy"}
                     user_password POST   /:locale/members/password(.:format)           {:controller=>"devise/passwords", :action=>"create"}
                 new_user_password GET    /:locale/members/password/new(.:format)       {:controller=>"devise/passwords", :action=>"new"}
                edit_user_password GET    /:locale/members/password/edit(.:format)      {:controller=>"devise/passwords", :action=>"edit"}
                                   PUT    /:locale/members/password(.:format)           {:controller=>"devise/passwords", :action=>"update"}
          cancel_user_registration GET    /:locale/members/cancel(.:format)             {:controller=>"registrations", :action=>"cancel"}
                 user_registration POST   /:locale/members(.:format)                    {:controller=>"registrations", :action=>"create"}
             new_user_registration GET    /:locale/members/sign_up(.:format)            {:controller=>"registrations", :action=>"new"}
            edit_user_registration GET    /:locale/members/edit(.:format)               {:controller=>"registrations", :action=>"edit"}
                                   PUT    /:locale/members(.:format)                    {:controller=>"registrations", :action=>"update"}
                                   DELETE /:locale/members(.:format)                    {:controller=>"registrations", :action=>"destroy"}
                     profile_users GET    /:locale/users/profile(.:format)              {:controller=>"users", :action=>"profile"}
                             users GET    /:locale/users(.:format)                      {:controller=>"users", :action=>"index"}
                                   POST   /:locale/users(.:format)                      {:controller=>"users", :action=>"create"}
                          new_user GET    /:locale/users/new(.:format)                  {:controller=>"users", :action=>"new"}
                         edit_user GET    /:locale/users/:id/edit(.:format)             {:controller=>"users", :action=>"edit"}
                              user GET    /:locale/users/:id(.:format)                  {:controller=>"users", :action=>"show"}
                                   PUT    /:locale/users/:id(.:format)                  {:controller=>"users", :action=>"update"}
                                   DELETE /:locale/users/:id(.:format)                  {:controller=>"users", :action=>"destroy"}
                             roles GET    /:locale/roles(.:format)                      {:controller=>"roles", :action=>"index"}
                                   POST   /:locale/roles(.:format)                      {:controller=>"roles", :action=>"create"}

【问题讨论】:

  • 它看起来像我的 RSpec 输出。不知道那里在做什么。尝试注释掉 Rspec gem 并调用rake routes 看看是不是它。
  • @Zequez 我没有使用 rspec... :|
  • 不知道是不是我的,因为我使用的是 rake 0.9.2,但是 ruby​​ 8.7
  • 嗯,这是某种测试输出,我没有使用没有 Rspec 的 Rails,我没想到默认测试引擎也有类似的输出:P

标签: ruby-on-rails pipe less-unix


【解决方案1】:

这些看起来像 ANSI 颜色转义序列。好像 less 没有正确解释序列。你确定你没有使用更少的选项吗?也许有像less -Rless --RAW-CONTROL-CHARS 这样的选项。我承认我对 ANSI 颜色转义序列知之甚少。

【讨论】:

  • Jared:我认为你是对的,我正在使用一个名为 Hirb 的 gem,它显示所有 db 查询控制台,但它以彩色输出它们。我想知道如何告诉less 忽略这些序列。绝对不是特别要求少显示字符...
  • 通过使用 -R 或 -r 使序列在less 中实际以彩色显示,但我对 less 的命令大多被忽略和误解。例如我的 j 命令(向下移动)只打印一个 'j'
  • 不知道这是否有帮助,但是如果您在控制台中,没有鼠标,您可以随时使用 Shift+PageUp/PageDown 滚动几页
【解决方案2】:

Jared 说您需要使用 less -R 来解释颜色序列是正确的。

就失去对less 导航的控制而言,我认为这不是由rake 引起的,而是由于rails 中的某些东西试图从STDIN 中读取。

要解决此问题,请重定向 STDIN:

rake routes </dev/null | less

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多