【发布时间】:2011-01-27 22:18:57
【问题描述】:
我想开始为 Rails 制作代码补丁。是否有任何关于“高级”Ruby 的好书我应该阅读以了解 Rails 源代码?还有其他入门技巧吗? Rails 看起来像一头大野兽,我不知道从哪里开始!
谢谢, 杰森。
更新:我也在寻找更多解释它的“网络”方面的东西——即 HTTP、Web 服务器、Rack 等。
【问题讨论】:
标签: ruby-on-rails
我想开始为 Rails 制作代码补丁。是否有任何关于“高级”Ruby 的好书我应该阅读以了解 Rails 源代码?还有其他入门技巧吗? Rails 看起来像一头大野兽,我不知道从哪里开始!
谢谢, 杰森。
更新:我也在寻找更多解释它的“网络”方面的东西——即 HTTP、Web 服务器、Rack 等。
【问题讨论】:
标签: ruby-on-rails
我写了the beginnings of an initialization guide for Rails 3,它可以帮助您理解Rails 3 中的一些常见概念。这主要涵盖了“railties”部分,但在实际的Railties 中有所扩展。这实际上取决于您想在 Rails 中修补/查看哪些内容,这实际上适用于您。
【讨论】:
我的建议是阅读以下内容: http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition 大致了解 Rails 在外部的工作原理(如果您还没有的话)。
然后检查最新的主干并开始阅读您喜欢的组件,随意处理文件并在实时项目中尝试更改。
元编程是 Rails 中经常使用的一个概念,所以这本书肯定也不错:http://pragprog.com/titles/ppmetr/metaprogramming-ruby。
希望这会让你上路
【讨论】:
也许 Manning 的 David Black 的 ruby-for-rails 书也可以帮助您
【讨论】:
你需要 obie fernandez 的“铁路之路” - http://my.safaribooksonline.com/9780321445612
它比任何其他 Rails 书籍都要好得多 - 只是纯粹的信息 - 怀疑它是否已准备好 rails3,但可能有更新版本的计划 - 说真的,买它
【讨论】:
Medium eXposure 的 Rails 3 Reading Material 有大量...呃,阅读材料,而 Jason Seifer 的 32 Rack Resources to Get You Started 应该让您在 Rack 上呆多久就玩多久。
您可能对Rails on Rack 感兴趣。它假定您对 Rack 有一定的了解,但提供了获取这些知识的良好链接。
Engine Yard series on the Rails and Merb merge 包含很多关于 Rails 3 内部工作原理和即将发生的变化的有用信息。
【讨论】:
正如您所指出的,您可能应该从基础开始。我建议在学习 rails 和 ruby 的同时阅读 Andrew S. Tanenbaum 的“计算机网络”。您几乎可以在任何科学图书馆中找到它。
【讨论】:
杰森博格。
2019 年我花了 3 周时间深入研究 Rails5 的源代码。
完成那项工作后,我对解释 Rails 有了信心。
希望我的工作也能帮助到你。
这是我的帖子: https://github.com/gazeldx/Learn-Rails-by-Reading-Source-Code
Table of Contents
Part 0: Before reading Rails 5 source code
What will you learn from this tutorial?
Part 1: Your app: an instance of YourProject::Application
Part 2: config
Part 3: Every request and response
Puma
Rack apps
The core app: ActionDispatch::Routing::RouteSet instance
Render view
How can instance variables defined in Controller be accessed in view file?
Part 4: What does $ rails server do?
Thor
Rails::Server#start
Starting Puma
Conclusion
Exiting Puma
Process and Thread
Send SIGTERM to Puma
【讨论】: