我正在学习 Ruby on Rails。目前我正在本地机器上进行基本开发。当我在终端 (OS X) 中运行 rails server
时会发生什么?我只是想了解 Rails 架构正在做什么以及运行哪些 Ruby 脚本。
最佳答案
rails server 所做的事情之一是它加载 Rails 应用程序所需的所有依赖项/gems,或者至少将它们设置为稍后在需要时自动加载。这有时称为“引导”或加载“Rails 环境”。当您运行 other rails commands 时也会完成此操作例如 rails console
或 rails runner
。
它还启动一个名为 WebRick 的 Web 服务器。 Web 服务器是一段 ruby 代码,运行时会将自身绑定(bind)到计算机上的端口(默认端口 3000),并开始监听该端口上传入的 HTTP 请求。
当请求到来时(例如,用户从页面加载的 HTTP GET 请求),Web 服务器与 Rails 一起处理该请求。我不确定工作是如何划分的,但是 Web 服务器应该处理较低级别的事情,例如读取 HTTP header ,而 Rails 应该负责弄清楚将请求路由到哪个 Controller 和操作(使用您的路由) .rb 文件)。我认为完成这项工作的rails 组件称为action_dispatch,它位于actionpack gem 中。
关于ruby-on-rails - 当我在本地启动 Rails 服务器时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8022383/