ruby-on-rails 运行Rails服务器的多个示例

a0zr77ik  于 2023-01-22  发布在  Ruby
关注(0)|答案(8)|浏览(207)

我是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服务器?

uqcuzwp8

uqcuzwp81#

我怀疑旧服务器仍在运行,而新服务器无法启动。请尝试先关闭它,然后再启动新应用。
或者,您可以使用-p开关(例如rails server -p 3001)在不同的端口上启动新服务器

hgqdbh6s

hgqdbh6s2#

您可以在localhost上运行webrick服务器的多个示例,方法是将不同的端口号分配为:

rails s -p 3007

但有时可能不起作用。
我有一个提示给你。你可以尝试使用这个和webrick提供的其他选项沿着使用。只要尝试使用-P提供任何数字作为PID:

rails s -p 3007 -P 42342
qyyhg6bp

qyyhg6bp3#

rails s -p 4000 --pid tmp/pids/server2.pid

上述命令将在端口4000上安全地启动第二台服务器

myss37ts

myss37ts4#

你不能告诉服务器哪个应用程序要服务,但是你可以为每个应用程序运行一个服务器,然后选择加载哪个。如果你想运行多个服务器,你必须在不同的端口上启动它们。默认端口是3000。要在端口3001上启动服务器,运行rails s -p 3001 on Rails 3或script/server -p 3001 on Rails 2。

gev0vcfq

gev0vcfq5#

在Rails 5和Puma服务器中,我可以通过以下方式实现这一点:
对于两个终端,在每个终端中运行rails server,指定不同的Pid文件和不同的端口:

这样,我可以在开发时为同一个应用程序模拟两个域

vlurs2pr

vlurs2pr6#

要启动rails服务器,请运行命令rails srails server。以下选项有效

-p Port
-b Binding (ip address)
-c Config file (for custom rack configuration)
-d Daemonize server
-u Enable debugger
-e Change the environment (defaults to development)
-P Specify a PID file

因此,要在本地计算机的不同端口运行示例,请使用以下命令

rails s -b 127.0.0.1 -p 8081

请注意,您可以删除“127.0.0.1“,因为“localhost”是默认主机。
有关详细信息,请查看此参考http://guides.rubyonrails.org/command_line.html#rails-server

14ifxucb

14ifxucb7#

在当前版本Rails 5.2.0和Ruby 2.4.1p111中,可以使用多个PID为同一个应用启动两个服务器示例。

$ rails s 
=> Booting Puma
=> Rails 5.2.0 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.11.4 (ruby 2.4.1-p111), codename: Love Song
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

现在,在不同端口上启动另一个服务器失败,原因是pid问题。

$ rails s -p 3001
=> Booting Puma
=> Rails 5.2.0 application starting in development 
=> Run `rails server -h` for more startup options
A server is already running. Check /Users/biju/app1/tmp/pids/server.pid.
Exiting

下面的方法启动服务器的作品使用多个示例的应用程序。

$ rails s -p 3001 -P 321412
=> Booting Puma
=> Rails 5.2.0 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.11.4 (ruby 2.4.1-p111), codename: Love Song
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3001
Use Ctrl-C to stop
mccptt67

mccptt678#

谢谢你的帮助--事实证明这是一个相当奇怪的事件。不知何故,我的整个项目文件夹被复制到了垃圾桶中。当我启动服务器时,我启动了垃圾桶副本中的服务器示例,而我回滚和编辑的副本却停留在原地。不知道这是怎么发生的(也许它与git有关,另一个我刚刚学习的工具)。无论如何,感谢所有的帮助,抱歉它是如此简单的东西!

相关问题