如何阅读Rails示例项目的源代码?

读取示例项目的源代码(例如Beast和Bort)被推荐为学习rails的好方法。 但是我发现自己迷失了阅读这些项目的源代码,因为包含的插件可能会带来一些没有任何提示的奇怪代码,例如"require""include" 。 你能分享你的rails代码阅读体验吗? 非常感谢。

学习使用rails时,最重要的事情之一是它如何加载你编写的代码。 假设您在app / controllers / demo / sub目录中有一个HelloController。 如果您生成了此控制器,它将具有正确的名称Demo :: Sub :: HelloController。

当你的路由告诉rails寻找“demo / sub / hello”时,它被转换为控制器的全名(Demo :: Sub :: HelloController),它们会尝试调用它们。 Ruby无法找到这个类并调用const_missing,这使得rails将名称转换为文件,在本例中为demo / sub / hello_controller(:: = /,capitals而不是first = _,在下划线方法下查找Inflections)。 然后Rails需要此文件并检查正确的类定义。

Rails在ruby的加载路径(app / controllers,app / models,app / helpers,lib,vendor)中添加了几个目录,并且任何这些目录中的demo / sub / hello_controller.rb都将满足r​​equire。 但是不在应用程序/控制器中的控制器需要特别注意视图。

此外,这适用于命名空间,只有它会查找目录。 所以引用Demo :: Sub将查找demo / sub目录。 这允许您放弃类的标准定义,因此您可以这样做

 class Demo::Sub::HelloController < ActionController::Base end 

代替

 module Demo module Sub class HelloController < ActionController::Base end end end 

Rails代码主要是ruby代码。 掌握ruby,你在阅读轨道代码时都没有问题。 祝好运。

  1. 开发一个简单的rails项目,直到你有基本的Rails东西。 因为一旦你了解标准Rails,你就会更快地识别插件function
  2. 更好地了解ruby,因为Rails是用它写的。 例如,有一本名​​为Ruby for Rails的书,这是一个很好的起点。
  3. 我想先看看从上到下的测试(集成,控制器,型号)