在控制台外运行Rails命令

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

我也希望能够自动化东西,并echo "query" | rails console echo "query" | rails console不是一个很好的做事方式。

思考?

编辑:一个长时间运行的进程,我可以在需要时ping查询?

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

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

    $ rails runner“query”

两者都在rails指南中有很好的文档记录: http : //guides.rubyonrails.org/command_line.html

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

只需将其输入:

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

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

 echo 'puts Article.count' | spring rails c 

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