Ruby on rails 修改Rails:高级用户如何找到需要更改的内容?

Ruby on rails 修改Rails:高级用户如何找到需要更改的内容?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我已经使用Rails几个月了,我很乐意编写一个项目&根据我的需要操作Rails,等等 最近我一直在尝试更高级一点,所以我尝试修改/添加到现有的rails代码库:添加新的表单助手方法,添加一个响应到:pdf方法,等等……我遇到了很多问题 困难在于学习需要修改的代码;代码位于何处,以及如何确保我不会遗漏其他文件中的相关代码。我猜有一种方法可以让人们学会这样做,但目前我只是猜测和希望 我想我的问题是,Rails人员如何学习他们需要修改的代码在哪里编辑&编辑代码的方法?看起来这只是你需要从之前的熟悉中了

我已经使用Rails几个月了,我很乐意编写一个项目&根据我的需要操作Rails,等等

最近我一直在尝试更高级一点,所以我尝试修改/添加到现有的rails代码库:添加新的表单助手方法,添加一个响应到:pdf方法,等等……我遇到了很多问题

困难在于学习需要修改的代码;代码位于何处,以及如何确保我不会遗漏其他文件中的相关代码。我猜有一种方法可以让人们学会这样做,但目前我只是猜测和希望

我想我的问题是,Rails人员如何学习他们需要修改的代码在哪里编辑&编辑代码的方法?看起来这只是你需要从之前的熟悉中了解的东西,但我猜必须有一个简单的方法来理解编辑的位置(和内容)


任何想法都值得欣赏…干杯

你想要的是MVC的工作原理。基本上你可以说:

1.)将逻辑应用于模型!模型是一切转动的轴心

2.)控制器是模型和视图之间的中间人。您不会在此处放置任何与从数据库中选择应显示在视图中的数据无关的逻辑。如果您多次使用一个选择逻辑,请在模型中创建一个
范围
,并在控制器中使用它

3.)视图仅用于显示内容!你不要把任何逻辑放在这里!所有逻辑来自模型,数据来自控制器。这里使用的唯一逻辑是通过应该显示的数据数组的循环

那你就少了一些东西。如果您有一个与外部服务(比如SOAP服务)相关的任务,那么您也可以为此编写一个类!只是没有使用ActiveRecord::Base继承,就像它是由架子工生成的一样。您可以在其他模型中调用该类。不要把它放到控制器上,也不要在每个需要它的类中复制代码!保持干燥(不要重复)。只需为它编写一个类,并将其包含在其他模型中


另一件事是数据库基础:不要存储可以从数据库的其他字段计算的数据!您可以添加计算所需内容的方法,但不要从重复开始

我强烈推荐Jose Valim的

您将完成高级项目,构建引擎类型和定制,这些将把您带到Rails开发的下一个级别

从网站:

本书将帮助您了解Rails 3的内部工作原理,包括 生成器、模板处理程序、国际化、路由和 响应者


你所描述的与我所做的相当准确!问得好,我想知道别人是怎么做的。我只是用这个来窥探源代码,直到我理解了机制。另一种获取知识的方法。。。是堆栈溢出!当我开始学习rails时,我常常浏览所有与rails相关的问题,并试图自己找到答案。通过这样做,我学到了很多关于rails内部的知识。然而,我不确定这个问题是否属于这里。也许吧?谢谢你的回复,但不是我想要的。我喜欢使用rails和集成ruby脚本。它正在扩展/覆盖框架本身,这让我感到害怕。;-)谢谢你的回复。我读过Crafting并很喜欢它,但对于理解框架中不熟悉部分的方法论,我并没有太多的见解。创建gems的方法,是的-但是在框架被打开的地方,似乎有更多的方法是“只键入这个”,而不是如何理解正在修改的框架的各个部分。@unlaimedbaggage如果你掌握了工艺,那么是时候潜入了。运行rake测试,进行更改,然后再次运行测试。重复一遍。那一层没有导游。