您好我已经创建了一个新的rails应用程序。在控制器内部,我使用了一个shell cmd来创建一个新的rails应用程序,
class DemoController < ApplicationController
def index
exec "rails new testing -d postgresql"
end
def list
end
end
我收到以下错误。 无法在另一个目录中初始化新的Rails应用程序,请先更改为非Rails目录。输入“rails”获取帮助。
我知道在另一个应用程序中创建一个新的rails应用程序是不可能的。
是否有任何函数在exec命令中指定存储位置? 或类似这样的exec“[目录位置] rails新测试-d postgresql”..?
答案 0 :(得分:1)
您可以将路径传递给rails new
命令:
system "rails new /target/folder/testing -d postgresql"
或cd
到目标文件夹,然后运行rails new
。像这样:
system "cd /target/folder && rails new testing -d postgresql"
答案 1 :(得分:1)
我知道这已经很晚了,但我想做类似的事情,这对我有用:
cd ~/Projects; rails new #{@app.name}
(围绕它的反叛) - 这个“默默地”执行。 rails new
运行
system "cd ~/Projects; rails new #{@app.name}"
- 这显示了控制台上的输出,即生成的文件与bundle install
一起显示,同时应用程序挂起
exec "cd ~/Projects; rails new #{@app.name}"
- 这会关闭服务器并显示rails new
和bundle install
的输出我想在另一个应用中创建一个应用。在你的情况下,我想你可以这样做:
exec "cd folder_name; rails new testing -d postgresql"
。
我建议您使用前两个选项中的任何一个,因为exec
关闭服务器并使您的应用程序停止。