我是Rails的新手,所以如果这很明显,请原谅我。
我做了很多实验,创建应用程序,测试功能等,它让我的第一个脚手架应用程序运行得很好,但我想创建第二个应用程序来测试不同的功能。
我在电脑上备份了一个文件夹级别,运行了$ rails new taskmaster
(一个测试任务列表应用程序),运行了Task
模型的scaffolding,通过$ rails server
启动了服务器,并尝试加载http://localhost:3000
。
但是我得到了一个路由错误,说它找不到"members"
路由,但是members
来自我的第一个Rails应用程序!我以为在taskmaster
目录中启动$ rails server
,它会启动那个应用程序的服务器。
如何告诉Rails服务器要提供哪个应用程序?
- 更新**
我刚发现如果我:
1.在创建Member scaffold之前,回滚到 * first * Rails应用程序的全新安装
1.通过应用程序根目录中的$ rails server
启动rails服务器
1.检查http://localhost:3000
它仍然尝试使用members
路径,这个路径已经不存在了,因为我通过git回滚了。
我猜这意味着我的/usr/local/
区域中的一些东西,与我的Ruby和Rails初始安装有关,正在维护这些信息(我的应用程序安装在我的主目录中的文档文件夹中)。
我认为Rails应用程序本质上是目录中自包含的应用程序--你只需要安装一个工作的Ruby就可以让它们运行了。Rails服务器是位于每个应用程序目录中,还是某个总体上容纳所有应用程序的Rails服务器?
8条答案
按热度按时间uqcuzwp81#
我怀疑旧服务器仍在运行,而新服务器无法启动。请尝试先关闭它,然后再启动新应用。
或者,您可以使用
-p
开关(例如rails server -p 3001
)在不同的端口上启动新服务器hgqdbh6s2#
您可以在localhost上运行webrick服务器的多个示例,方法是将不同的端口号分配为:
但有时可能不起作用。
我有一个提示给你。你可以尝试使用这个和webrick提供的其他选项沿着使用。只要尝试使用
-P
提供任何数字作为PID:qyyhg6bp3#
上述命令将在端口4000上安全地启动第二台服务器
myss37ts4#
你不能告诉服务器哪个应用程序要服务,但是你可以为每个应用程序运行一个服务器,然后选择加载哪个。如果你想运行多个服务器,你必须在不同的端口上启动它们。默认端口是3000。要在端口3001上启动服务器,运行
rails s -p 3001
on Rails 3或script/server -p 3001
on Rails 2。gev0vcfq5#
在Rails 5和Puma服务器中,我可以通过以下方式实现这一点:
对于两个终端,在每个终端中运行
rails server
,指定不同的Pid文件和不同的端口:这样,我可以在开发时为同一个应用程序模拟两个域
vlurs2pr6#
要启动rails服务器,请运行命令
rails s
或rails server
。以下选项有效因此,要在本地计算机的不同端口运行示例,请使用以下命令
请注意,您可以删除“127.0.0.1“,因为“localhost”是默认主机。
有关详细信息,请查看此参考http://guides.rubyonrails.org/command_line.html#rails-server
14ifxucb7#
在当前版本Rails 5.2.0和Ruby 2.4.1p111中,可以使用多个PID为同一个应用启动两个服务器示例。
现在,在不同端口上启动另一个服务器失败,原因是pid问题。
下面的方法启动服务器的作品使用多个示例的应用程序。
mccptt678#
谢谢你的帮助--事实证明这是一个相当奇怪的事件。不知何故,我的整个项目文件夹被复制到了垃圾桶中。当我启动服务器时,我启动了垃圾桶副本中的服务器示例,而我回滚和编辑的副本却停留在原地。不知道这是怎么发生的(也许它与git有关,另一个我刚刚学习的工具)。无论如何,感谢所有的帮助,抱歉它是如此简单的东西!