Ruby on Rails中的Runner

33

script/runner是什么?

runner是什么?

如何在Ruby文件上使用runner?

命令提示符上输入的所有命令是什么?

我是在Windows上使用。


嘿,如果你正在阅读这个答案并且想要更多信息,我刚刚发布了一篇关于rails runner以及我们可以用它做的一些酷炫事情的博客文章 — 跳过Rails控制台,使用Rails Runner - Harrison Broadbent
2个回答

45

来自Rails指南:

1.7 rails runner

runner 在非交互式的Rails环境中运行Ruby代码。例如:

$ rails runner "Model.long_running_method"

你也可以使用别名“r”来调用runner:rails r

你可以使用-e开关指定runner命令应该在哪个环境中运行。

$ rails runner -e staging "Model.long_running_method"
要运行的任何代码必须作为你的Rails应用程序的一部分加载,即在app/lib/等其他位置。

好的,“long_running_method”是以.rb扩展名结尾的文件吗?还有,“script/runner”是什么,我在很多网站上都看到过。 - Ravikiran
1
script/runner 是 Rails 3 之前的遗留版本,相当于 rails runnerlong_running_method 不是一个文件,而是 Model 类上的一个 方法。传递的字符串字面上是要运行的 Ruby 代码。 - Andrew Marshall
好的,这是一个真实的情况:我有一个 Apache + Passenger + Rails 应用程序。如何配置所有这些,以便随着 Apache 一起启动和停止 runner? - Paul
我注意到在Rails 5中运行时不需要使用引号。这样做会有问题吗? - Jake
1
@Jake 这里的引号与Rails(或Ruby)无关,它们是用于shell的。这并不重要,因为参数中没有空格(或其他常见的shell特殊字符)。 - Andrew Marshall
如何将命令行程序设置为守护进程? - Matrix

22

你可以将Ruby文件放入/lib文件夹中,然后通过以下方式执行它:

rails r lib/script.rb

就这样了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接