如何掌握Ruby on Rails

Vin*_*han 5 ruby-on-rails

我一直在使用在线教程来学习ROR.我已经使用www.lynda.com视频课程来了解Rails的基本概念,并且在练习期间我使用Rails版本2.0.2.但现在我进入了一家初级公司的开发团队,没有资深/有经验的程序员来帮助我,我们正在使用Rails 2.3.8进行有价值的源代码修改.我在理解源代码时面临很多困难,我可以注意到的一些主要差异如下:

  1. 在Rails 2.3.8中包含XML和HTML以在脚手架中呈现视图(我不明白这是什么,因为我在使用Rails 2.0.2的训练期间从未遇到过这种情况)

  2. 在gitorious源目录中,除了Controllers,Models,Views和Helpers之外,还有两个目录,即Processors和Metals.我不明白它们的意义是什么.

  3. 广泛使用.yml文件.这些是为了什么?在rails 2.0.2中,我遇到的只是database.yml.现在,在功勋,我看到gitorious.yml.这些都是如此定制的?我的意思是,rails app(控制器,模型等)如何与gitorious.yml进行通信?

关于所有这些问题,如何将一两个级别向上移动,称自己为"Rails新手程序员"中的"中级Rails程序员"?如何在所有即将到来的Rails过渡中保持新api,弃用的更新?

Tom*_*ris 3

\n

Rails 2.3.8 中包含 XML 和 HTML 以在脚手架中呈现视图

\n
\n\n

是的,脚手架的工作方式已经改变了——我记不清它是什么时候改变的,但我当然可以相信改变发生在 2.0 和 2.3 之间。

\n\n

当您以旧方式生成脚手架时,它只会在控制器中包含“脚手架”命令,这将为每个操作呈现默认界面,直到您用自己的 HTML 模板替换它们为止。

\n\n

新方法实际上将 HTML 模板生成为文件:因此,在views目录中,将有一个包含 ERb(嵌入 Ruby 的 HTML)的目录。然后您可以直接编辑它们。

\n\n

它还呈现 XML - 这是默认完成的,但您可以选择生成其他格式。Rails 允许您为每个控制器操作生成多种输出格式 - 以便您可以轻松生成 RESTful Web 服务。因此,显然您默认会生成 XML,但您可能也想生成其他机器格式:XML(包括 RSS/Atom)、JSON(和 JSON-P 等)、RDF、YAML。我用它来生成 CSV 和 Excel,以便网站用户可以将数据导出到他们的电子表格包中。

\n\n
\n

在gitorious的源目录中,除了Controllers、Models、Views和Helpers之外,还有两个目录,即Processors和Metals。我不明白它们的意义是什么。

\n
\n\n

Technologies/ 由ActiveMessaging使用- 它包含 ActiveMessaging 处理器 - 基本上是作为与 ActiveMessaging 连接的消息队列通信的一部分而被调用的代码。

\n\n

metal/ 包含最能被描述为“中间件”的代码 - 基本上,要部署 Rails 应用程序,您需要使用一个名为 Rack 的库,该库抽象了服务器和应用程序本身之间的接口。它允许您使用相同的 Web 服务器和其他基础设施,并在不同的 Ruby 框架之间切换 - 因此,如果您使用 Rails、Sinatra 或 Merb,Rack 可以让它们全部与同一服务器进行通信。

\n\n

现在,Rack 允许您编写“Metal”代码,这些代码可以直接在服务器上运行,而无需框架的干扰。编写 Metal 代码的原因是为了性能 - 当 Metal 代码运行时,它会直接运行,而不是受到 Rails 框架的影响。这样,您可以获得更好的性能。我从未编写过任何 Metal 代码,因此除此之外我无法真正解释它。

\n\n
\n

.yml 文件的广泛使用。这些是做什么用的?在rails 2.0.2 中,我遇到的只是database.yml。现在,\n 在 gitorious 中,我看到 gitorious.yml。所有这些都是如何定制的?我的意思是,rails 应用程序(控制器、模型等)如何与 gitorious.yml 通信?

\n
\n\n

.yml 文件是YAML格式的文件。在 Rails 中,这些主要用于配置。正如 Java 应用程序使用 XML 文件进行配置一样,.rc 文件在 Unix 中用于配置,.ini 文件(曾经是?)用于 Windows 上的各种应用程序进行配置,您可以将数据存储在 Rails 的 YAML 文件中应用程序用于配置。由于格式简单,许多 Ruby 和 Rails 应用程序使用 YAML 作为配置文件。

\n\n

Ruby 有一个内置的 YAML 模块,可以使用 YAML 模块中的方法加载这些内容,包括 YAML.load、YAML.load_file、YAML.load_documents 等。要查看它们是如何加载的,我建议最简单的方法是找到字符串“YAML”。在项目中 - 或者实际上是 yml 文件的名称。

\n\n
\n

对于所有这些问题,\n 我如何提升一两个级别,\n 称自己为“Rails 新手程序员”的“中级 Rails\n 程序员”?以及如何在所有即将到来的 Rails 转换中保持新 API、弃用内容的更新?

\n
\n\n

我建议 Rails 更新保持相当程度的保守是适当的。我仍在生产站点上使用 Rails 2.3.3,这很好。我可能应该升级到 2.3.8,但我往往不会在生产项目中使用最前沿的技术。

\n\n

至于最好的学习方法,我建议您通过Railscasts进行学习- 这些都是优秀的简短截屏视频,描述了各种有用的技术,并帮助您了解有关 Rails 框架的更多信息。当你需要做某事时,显然有 API 文档——这没问题。Rails 指南非常好,值得一读。

\n\n

至于书籍,有《Agile Web Development with Rails》——这是一本非常好的教程。还有The Rails Way,这是一本大量的案头参考资料,根据我的经验,这是了解一些细节的唯一好方法之一。您可能还想查看 StackOverflow 问题What\xe2\x80\x99s 是初学者学习 Rails 的最佳资源?- 因为虽然您显然不是初学者,但推荐的资源是最新的,并且对于从新手到中级乃至更高级别非常有用。祝你好运!

\n