【发布时间】:2011-07-12 22:06:41
【问题描述】:
红宝石新手警报! (嘿,押韵:))
我已经阅读了官方定义,但仍然空手而归。当他们说中间件时,究竟是什么?使用 ruby 和 https 的目的是什么?
patnaik 博客上的小教程让事情变得更清晰,但我如何在 localhost 上使用它?我已经安装了 ruby 1.9.2 以及 rack gem 和 mongrel 服务器。
我先开始 mongrel 吗?怎么样?
【问题讨论】:
红宝石新手警报! (嘿,押韵:))
我已经阅读了官方定义,但仍然空手而归。当他们说中间件时,究竟是什么?使用 ruby 和 https 的目的是什么?
patnaik 博客上的小教程让事情变得更清晰,但我如何在 localhost 上使用它?我已经安装了 ruby 1.9.2 以及 rack gem 和 mongrel 服务器。
我先开始 mongrel 吗?怎么样?
【问题讨论】:
您最好搜索其他对您有意义的问题和答案。试试“Rails 入门”或“Ruby Web 开发”。这个网站上很多不同的主题都专门针对这个主题,所以你可能会省去一些麻烦......
暂时忽略您问题的细节,您似乎想学习 Ruby 并构建 Web 应用程序。在开始研究 Rack 或 Mongrel 或其他任何东西之前,您应该知道有 2 个完善的框架可以帮助构建 Ruby Web 应用程序。第一个是 Ruby on Rails,另一个是 Sinatra。还有很多其他的,但这些是 Stack Overflow 和整个互联网上记录最充分的。
查看以下链接了解一些背景...
如果您仍然渴望回答您的问题 - “什么是机架?”,您应该遵循相同的过程,并最终得到这个 Stack Overflow 答案:
祝你好运!
【讨论】:
只是添加对 Rack 的简单解释(因为我觉得缺少):
Rack 基本上是 Web 应用程序可以与 Web 服务器通信的一种方式。沟通是这样的:
environment 告知应用程序 - 这主要包含用户作为请求发送的内容 - url、标头、是 GET 还是 POST 等。status 代码在一切正常时类似于 200,在出现问题时类似于 400。headers 是网络浏览器可以使用的信息,例如有关在其缓存中保留网页多长时间等信息。body,这是您在浏览器中看到的实际网页。这两个步骤或多或少可以定义网络应用程序工作的整个过程。
所以一个非常简单的 Rack 应用程序可能如下所示:
class MyApp
def call(environment) # this method has to be named call
[200, # the status code
{"Content-Type" => "text/plain", "Content-length" => "11" }, # headers
["Hello world"]] # the body
end
end
# presuming you have rack & webrick
if $0 == __FILE__
require 'rack'
Rack::Handler::WEBrick.run MyApp.new
end
【讨论】:
ruby my_app.rb 运行它。但是,如果您有一个较旧的 ruby,您可能需要在顶部添加一个 require "rubygems" 行,而我只使用 sudo 运行它并在 WEBrick.run 调用中添加一个 :Port => 7890 参数。
app 的开头运行。该文件将如何自动运行
非常好的答案确实是的。对于我的两分钱,我将添加此内容,因为如果您知道如何在此处获取幕后文档,您会发现很多信息,因为我将其存储在这里,而绝不是我所拥有的全部。 http://myrackapps.herokuapp.com/
【讨论】: