如何在我们的 rails 控制器中执行 rails 命令行语句
eg:我需要执行这个语句
$rails 新测试 -d postgresql
从我的导轨控制器
定义索引
/执行命令行语句的代码/
结尾
希望清楚..
如何在我们的 rails 控制器中执行 rails 命令行语句
eg:我需要执行这个语句
$rails 新测试 -d postgresql
从我的导轨控制器
定义索引
/执行命令行语句的代码/
结尾
希望清楚..
如果你想在控制器中运行 shell 命令,只需使用“system”
例如:
system "rails new test -d postgresql"
要不然
exec "rails new test -d postgresql"
使用反引号来屏蔽,如下所示:
`rails new test -d postgresql`
为此使用作业队列可能更聪明。
要在控制器中运行命令行语句,我们可以使用system
命令
system "cd {path_to_folder}; rails new test -d postgresql"
就像PradeepKumar说的(会评论它,但由于代表不能):
系统“cd {path_to_folder}; rails new test -d postgresql”
您必须在同一指令中声明要运行的所有命令(由 a 分隔;
)。我没有这样做(将cd
访问目录的命令与我的 runnable 和两个不同调用中的实际执行行分开),我得到的结果不是我想要的。例如,如果您尝试运行:
system "cd {path_to_folder}"
进而:
system "rails new test -d postgresql"
rails 命令不会在path_to_folder的上下文中执行,而是在命令行界面的默认位置(例如C:\Users\Me
)或 Rails 程序的环境中执行。
此外,我在命令执行时遇到错误,我通过&
在命令末尾添加 a 来修复该错误。在这种情况下,指令有两个命令,我将它添加到第一个命令的末尾(在 之前;
)。