我对 Rails 堆栈的简单理解是它执行以下操作(通常)
- 输入是一个 HTTP 消息(GET、POST、PUT、DELETE、HEAD)、一个 URL、一些(可选)cookie、一个(可选)会话令牌,可能还有一些以 JSON 或 XML 格式打包的数据。
- 这个 HTTP 消息由 Rack 处理,它可以通过一组“中间件”函数运行它,这些函数从消息中添加或删除数据,并且可以使用这些数据从程序的数据存储中添加、更改或删除数据。
- Rack 输出的 HTTP 消息被发送到 Rails 路由器,后者将其映射到控制器、操作和参数散列,其中包含会话信息、cookie 和其他参数。数据被分派给适当的控制器。
- 控制器方法解析参数,并在算法上将其与数据库中的数据(通过模型)组合,可选地更改数据,然后将一组以 @ 开头的变量调度到视图模板。
- 视图模板获取数据并将其与视图模板合并以形成具有适当格式(例如 HTML、JS、JSON、XML 等)的视图,或者它告诉调用者(通过 HTTP 返回代码)重定向到另一个网址。
我想使用 Rails 控制台对我的 Rails Web 应用程序执行的操作是
- 使用 URL、会话 ID、cookie 和编码数据(JSON 或 XML)编写有效的 HTTP 消息。
- 将此数据注入 Rack 接口,并在将其发送到 Rails 路由器之前检查输出的内容。
- 然后我想将该数据发送到 Rails 路由器,看看在它进入控制器之前会出现什么。
- 然后我想将该数据发送到控制器,看看在发送到视图模板之前会出现什么。
- 然后我想获取该数据并通过视图模板运行它并在 STDOUT 上显示,或者让它自动打开 Web 浏览器并查看它的呈现。
是否有任何现有的 Rails 工具可以做到这一点?如果没有,谁能指出这些接口出现的 Rails 代码?