Ruby on Rails 中的 Runner

Posted

技术标签:

【中文标题】Ruby on Rails 中的 Runner【英文标题】:Runner in Ruby on Rails 【发布时间】:2012-06-17 18:15:48 【问题描述】:

什么是脚本/运行器?

什么是跑步者?

如何在 Ruby 文件上使用 runner?

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

顺便说一下,我使用的是 Windows。

【问题讨论】:

【参考方案1】:

来自Rails Guides:

1.7rails runner

runner 在 Rails 上下文中以非交互方式运行 Ruby 代码。为了 实例:

$ rails runner "Model.long_running_method"

您也可以使用别名“r”来调用运行器:rails r

您可以指定运行器命令应该在其中的环境 使用-e 开关进行操作。

$ rails runner -e staging "Model.long_running_method"

任何要运行的代码都必须作为 Rails 应用程序的一部分加载,即在 app/lib/ 等其他地方。

【讨论】:

好的,“long_running_method”是以扩展名.rb 结尾的文件吗?还有什么是“脚本/跑步者”,在许多网站上都遇到过。 script/runner 是 Rails 3 之前的 rails runner 的旧版等价物。long_running_method 不是文件……它是 Model 类的 方法。传递的字符串实际上是要运行的 Ruby 代码。 好的,这是一个真实的情况:我有 Apache + Passenger + Rails 应用程序。如何配置运行器与 Apache 一起启动和停止的所有这些? 我注意到在 Rails 5 中运行时不需要使用引号。这样做会导致问题吗? @Jake 这里的引号与 Rails(或 Ruby)无关,它们是用于 shell 的。这恰好无关紧要,因为参数中没有空格(或其他常见的 shell 特殊字符)。【参考方案2】:

你可以把你的 Ruby 文件放到 /lib 文件夹中并通过以下方式执行:

rails r lib/script.rb

就是这样。

【讨论】:

以上是关于Ruby on Rails 中的 Runner的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ruby​​ on rails 中访问 rails 助手和嵌入资产 javascript 文件中的 ruby​​?

Ruby on Rails 中的 Runner

ruby on rails 中的 Coffeescript 编译错误

Cpanel 中的 Ruby On Rails 问题

覆盖Ruby on Rails中的保存

ruby on rails 中的 Devkit 函数