在控制台外运行Rails命令
使用我的大型应用程序,Rails控制台需要一段时间才能加载。 有没有办法更轻松地单个命令?
我也希望能够自动化东西,并echo "query" | rails console
echo "query" | rails console
不是一个很好的做事方式。
思考?
编辑:一个长时间运行的进程,我可以在需要时ping查询?
在控制台外运行命令有两种主要方法:
- 耙子任务取决于:环境
-
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向它发送命令。 这个动作当然是完全不安全的,并且应该在生产附近的任何地方进行三重防护,但它很容易设置。