我正在尝试从头开始学习 ruby for web。我知道 PHP,而且我是 ruby 新手。我不想在一开始就使用任何框架。尝试创建简单的 2 - 3 页练习。我搜索了很多但没有任何示例来从 ruby 和 racks 创建网页并在任何浏览器中运行它。
伙计们,如果您有任何 URL 或在线资料可以开始,请分享。
用 Ruby 编写一个简单的 CGI 很容易,但是解释如何超出了 Stack Overflow 的范围。
首先,请阅读 Wikipedia 的通用网关接口文章,以便您对 CGI 必须返回的内容有一个基本的了解。挑选 Perl 示例;你应该能够很容易地弄清楚发生了什么。通读这篇文章并将其内容与代码示例的内容进行比较。
接下来,看看 Ruby 的CGI模块,因为它会帮助您解析传入的表单信息,并对 URL 和 HTML 进行编码/解码。查看环境变量表,您会看到传入的内容与 Wikipedia 文章中提到的内容相同。接下来,注意params()
方法,这是您访问表单变量的方式。通过阅读“编写输出”和“生成 HTML”部分来遵循这一点,并在示例中了解一下。那你应该上路了。
完成后,您应该看看Sinatra gem。这是一个非常好的、易于使用的框架,非常适合一般的 Web 使用,并且在了解了 CGI 的工作原理之后,您将处于了解 Sinatra 为您所做的一切的好地方。此外,我强烈建议将HAML与 Sinatra 一起使用。它是一种用于生成网页的快捷语言,类似于 ERB,但不那么冗长。
您会发现 PHP 已经使您无需了解使用 CGI 编写“普通”Web 应用程序所需的大量知识。如果您已经知道这些内容,那没关系,但如果您从未编写过较低级别的代码,或者尝试使用不同的语言,那就不好了,因为了解 CGI 层提供了理解整个 HTTPD 堆栈所需的大量知识。一旦您了解了 CGI 层,Sinatra、Rails、Django、Mojolicious 和所有其他框架之类的东西就会突然变得更有意义,并且您会知道何时利用它们或推出自己的框架。而且,PHP 在 HTTP 服务器中的位置也将更加清晰,让您可以更好地挑选适合手头工作的工具。
查看 Ben Scofield 在 RubyConf 2008 上的演讲 -构建我自己的 Web 框架应该让您了解在不使用任何框架的情况下从头开始使用 ruby 构建 Web 应用程序所涉及的内容。
上一个问题的答案也应该会有所帮助:在 Ruby 中完成 Web 应用程序而不使用任何框架 - 有多难?陷阱?