我正在学习Ruby on Rails。目前我正在本地机器上进行基本开发。当我在终端(OS X)中运行rails server
时会发生什么?我只想了解Rails架构正在做什么以及运行哪些Ruby脚本。
答案 0 :(得分:3)
rails server
做的其中一件事是它加载了Rails应用程序所需的所有依赖项/ gem,或者至少将它们设置为在需要时自动加载。这有时称为“引导”或加载“Rails环境”。当您运行rails console
或rails runner
。{/ p>等other rails commands时,也会执行此操作
它还会启动名为WebRick的Web服务器。 Web服务器是一段ruby代码,在运行时,将自身绑定到计算机上的端口(默认端口为3000),并开始侦听该端口上的传入HTTP请求。
当请求进入时(例如,用户从页面加载HTTP GET请求),Web服务器与rails一起处理请求。我不确定工作是如何划分的,但是Web服务器应该处理较低级别的东西,比如读取HTTP头和rails应该注意找出将请求路由到哪个控制器和操作(使用你的路由) .rb文件)。我认为执行此工作的rails组件称为action_dispatch,它位于actionpack gem中。