我是Rails的新手,如果这很明显,请原谅我.
我正在进行大量的实验,创建应用程序,测试功能等.它使我的第一个脚手架应用程序运行良好,但我想创建第二个应用程序来测试不同的功能.
我在我的计算机上备份了一个文件夹级别,运行$ rails new taskmaster(测试待办事项列表应用程序).我为Task模型运行了脚手架,通过启动了服务器$ rails server,并尝试加载http://localhost:3000.
但我收到路由错误,说它无法找到"members"路由.但是members来自我的第一个Rails应用程序!我想通过$ rails server在taskmaster目录中触发,它将启动该应用程序的服务器.
如何告诉Rails服务器提供哪个应用程序?
UPDATE
我刚发现如果我:
$ rails server应用程序的根目录启动rails服务器http://localhost:3000它仍然试图去寻找members路线,因为我通过git回滚了.
我猜这意味着在我的/usr/local/区域,与我的Ruby和Rails初始安装相关的东西,正在维护这些信息(我的应用程序在我家的目录中的Documents文件夹中设置).
我认为Rails应用程序本质上是目录中的自包含应用程序 - 你只需要一个有效的Ruby安装来实现它们.Rails服务器是否位于每个应用程序目录中,还是可以容纳所有应用程序的一些总体Rails服务器?
cam*_*cam 48
我怀疑旧服务器仍在运行,新服务器无法启动.尝试先杀死它,然后启动它新的应用程序.
或者,您可以使用-p开关在不同的端口上启动新服务器(例如rails server -p 3001)
Jas*_*der 29
您可以通过分配不同的端口号在localhost上运行webrick服务器的多个实例:
rails s -p 3007
Run Code Online (Sandbox Code Playgroud)
但有时可能无效.
我有一个小贴士.你可以尝试使用这个以及webrick提供的其他选项.只需尝试使用以下任意数字作为PID -P:
rails s -p 3007 -P 42342
Run Code Online (Sandbox Code Playgroud)
Ale*_*ban 11
您无法真正告诉服务器要提供哪个应用程序,但您可以为每个应用程序运行服务器,并选择要加载的应用程序.如果要运行多个服务器,则必须在不同的端口上启动它们.默认端口为3000.要在端口3001上启动服务器,请rails s -p 3001在Rails 3或script/server -p 3001Rails 2上运行.
rails s -p 4000 --pid tmp/pids/server2.pid
Run Code Online (Sandbox Code Playgroud)
上面的命令将在 4000 端口安全地启动第二个服务器
感谢您的帮助 - 事实证明这是一个相当奇怪的事件。不知何故,我的整个项目文件夹被复制到垃圾箱中。当我启动服务器时,我在垃圾副本中启动服务器实例,而我回滚和编辑的副本保留在同一位置。不知道这是怎么发生的(也许它与 git 有关,我刚刚学习的另一个工具)。无论如何,感谢您的所有帮助,抱歉,事情太简单了!