Ruby on rails 如何阅读Rails示例项目的源代码?
建议阅读Beast和Bort等示例项目的源代码作为学习rails的好方法。但我发现自己在阅读这些项目的源代码时迷失了方向,因为包含的插件可能会在没有任何提示的情况下引入一些奇怪的代码,例如Ruby on rails 如何阅读Rails示例项目的源代码?,ruby-on-rails,Ruby On Rails,建议阅读Beast和Bort等示例项目的源代码作为学习rails的好方法。但我发现自己在阅读这些项目的源代码时迷失了方向,因为包含的插件可能会在没有任何提示的情况下引入一些奇怪的代码,例如“require”或“include”。你能分享一下你的rails代码阅读经验吗?非常感谢。Rails代码主要是ruby代码。精通ruby,您在阅读rails代码时将不会有任何问题。 祝你好运。在学习使用rails时,最重要的一点是要知道它如何加载您编写的代码。假设您在app/controllers/demo/
“require”
或“include”
。你能分享一下你的rails代码阅读经验吗?非常感谢。Rails代码主要是ruby代码。精通ruby,您在阅读rails代码时将不会有任何问题。
祝你好运。在学习使用rails时,最重要的一点是要知道它如何加载您编写的代码。假设您在app/controllers/demo/sub目录中有一个HelloController。如果生成此控制器,它将具有正确的名称Demo::Sub::HelloController 当您的路由告诉rails查找“demo/sub/hello”时,这将转换为控制器的全名(demo::sub::HelloController),rails将尝试调用哪个。Ruby找不到此类并调用const_missing,这使得rails将名称转换为一个文件,在本例中为demo/sub/hello_controller(::=/,除first=\以外的大写字母,在下划线方法下查找屈折变化)。Rails需要这个文件并检查正确的类定义 Rails在ruby的加载路径中添加了几个目录(app/controllers、app/models、app/helpers、lib、vendor),其中任何一个目录中的demo/sub/hello\u controller.rb都可以满足要求。但不在应用程序/控制器中的控制器需要特别注意这些视图 同样,这也适用于名称空间,只是它将查找目录。因此,引用Demo::Sub将查找Demo/Sub目录。这允许您放弃类的标准定义,因此您可以这样做
class Demo::Sub::HelloController < ActionController::Base
end
class Demo::Sub::HelloController
而不是
module Demo
module Sub
class HelloController < ActionController::Base
end
end
end
模块演示
模块子模块
类HelloController
是的,我同意。但是在这个过程中有没有rails的魔法应该向我这样的新手解释?或者有没有简单的方法来确定一个奇怪的方法来自哪里?