【问题标题】:Bypassing --More-- in Rails Console在 Rails 控制台中绕过 --More--
【发布时间】:2015-10-25 19:21:09
【问题描述】:

我想分析我的 Rails 应用程序的用户创建的所有帖子,该应用程序托管在 Heroku 上。在控制台中,我创建了一个变量,其中包含网站上发布的每个单词,其中包含数十万个单词。我想从控制台导出这些词,以便在其他地方进行分析。

我从这篇文章中了解到,使用 Tee 可以获取控制台输出的副本:

How to export a Ruby Array from my Heroku console into CSV?

问题是,如果我尝试打印所有单词,控制台总是显示'--More--',此时我按下回车键以显示更多文本。正如你可以想象的那样,对于数十万个单词,我一直按 Enter 键来显示整个文本是不切实际的。我怎样才能绕过这个?

【问题讨论】:

  • 获取数据库转储并在本地加载。然后在本地使用 rails 控制台创建您的 csv。或者您也可以在您的应用程序中公开一个端点,该端点将为您创建此 csv。

标签: ruby-on-rails ruby heroku console


【解决方案1】:
heroku run console | tee output.txt

如果您使用上面的tee-trick,您只需键入q 即可退出您的终端寻呼程序(我假设它是more),因为tee 同时写入标准输出(这就是为什么您'正在查看所有输出,more 会自动开始分页)以及您在参数中提供的文件(在上述情况下为output.txt)。

由于您不需要/不想查看所有输出,只需退出 more 并对该文件执行您想要的操作。

【讨论】:

    【解决方案2】:

    您是否尝试过普通的老式 unix shell 重定向?

    heroku run console > output.txt
    

    可能最好编写一个 rake 任务来输出您的数据,这样就不会与控制台中发生的其他事情混在一起。当您只使用标准输出(例如 puts)时,这样的东西应该可以工作:

    heroku rake db:postexport > output.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-24
      • 2011-05-11
      • 2015-03-10
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多