ruby-on-rails - 当我在本地启动 Rails 服务器时会发生什么?

标签 ruby-on-rails

我正在学习 Ruby on Rails。目前我正在本地机器上进行基本开发。当我在终端 (OS X) 中运行 rails server 时会发生什么?我只是想了解 Rails 架构正在做什么以及运行哪些 Ruby 脚本。

最佳答案

rails server 所做的事情之一是它加载 Rails 应用程序所需的所有依赖项/gems,或者至少将它们设置为稍后在需要时自动加载。这有时称为“引导”或加载“Rails 环境”。当您运行 other rails commands 时也会完成此操作例如 rails consolerails 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/

相关文章:

ruby-on-rails - 如何确保 Sphinx 守护进程运行?

ruby-on-rails - rails 闪存:notice doesn't work

css - capybara 如何检查给定链接的 'li' 是否具有正确的 css 类

ruby-on-rails - 在 emberjs 和 Rails 中显示 has_and_belongs_to_many 数组

ruby-on-rails - rspec Controller 测试,预期响应为 <redirect>,但为 <200>

ruby-on-rails - Rails事件模型从同一个表查询父子

ruby-on-rails - rake Assets 预编译失败

ruby-on-rails - 错误 : extconf failed, 退出代码 1 [Ruby on Rails]

javascript - Jquery动态表中最接近的输入

ruby-on-rails - Rails 简单形式 group_method