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.7
rails 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?