在控制台外运行Rails命令

时间:2012-06-19 20:11:42

标签: ruby-on-rails ruby ruby-on-rails-3 console

使用我的大型应用程序,Rails控制台需要一段时间才能加载。有没有办法更轻松地单个命令?

我也希望能够实现自动化,echo "query" | rails console不是一种很好的做事方式。

思想?

编辑:如果我需要的话,我可以ping查询的长时间运行过程怎么样?

2 个答案:

答案 0 :(得分:48)

在控制台之外运行命令有两种主要方法:

  1. Rake任务取决于:环境
  2. rails runner(以前的脚本/跑步者),例如:

    $ rails runner "query"
    
  3. 这两个都在rails指南中有详细记录:http://guides.rubyonrails.org/command_line.html

    btw:这两种方法仍然需要与控制台同时启动,但它们对于非交互式任务非常有用。

答案 1 :(得分:27)

将它输入:

echo 'puts Article.count' | bundle exec rails c

由于Spring,它现在应该比最初提出问题时快得多。这不是直接的,但仍然比旋转整个应用程序快得多。使用它作为快速通道,它应该在一秒钟内运行(假设您的所需命令很快):

echo 'puts Article.count' | spring rails c

如果你真的想要一个长时间运行的进程,你可以通过创建一个控制器动作来轻松地完成它,只需运行你发送给它的任何东西,然后使用别名后面的curl向它发送命令。该行动当然是完全不安全的,并且应该在生产附近的任何地方进行三重保护,但它很容易设置。