在控制器内创建新的rails应用程序

时间:2012-08-31 06:49:22

标签: ruby-on-rails ruby-on-rails-3.2

您好我已经创建了一个新的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”..?

2 个答案:

答案 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)

我知道这已经很晚了,但我想做类似的事情,这对我有用:

  1. cd ~/Projects; rails new #{@app.name}(围绕它的反叛) - 这个“默默地”执行。 rails new运行

  2. 时未显示输出且应用程序被挂起
  3. system "cd ~/Projects; rails new #{@app.name}" - 这显示了控制台上的输出,即生成的文件与bundle install一起显示,同时应用程序挂起

  4. exec "cd ~/Projects; rails new #{@app.name}" - 这会关闭服务器并显示rails newbundle install的输出
  5. 我想在另一个应用中创建一个应用。在你的情况下,我想你可以这样做: exec "cd folder_name; rails new testing -d postgresql"。 我建议您使用前两个选项中的任何一个,因为exec关闭服务器并使您的应用程序停止。