修改Rails:高级用户如何找出需要更改的内容?

时间:2012-03-05 12:27:53

标签: ruby-on-rails ruby

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

最近我一直试图提高一点,所以我试图修改/添加到现有的rails代码库:添加新的表单助手方法,添加一个responds_to:pdf方法等等......我一直有很多问题。

困难在于学习我需要修改的代码;该代码所在的位置,以及如何确保我不会错过其他文件中的相关代码。我猜这是人们学会这样做的一种方式,但目前我只是猜测和希望。

我想我的问题是,Rails人们如何去了解他们需要修改的代码在哪里编辑&编辑它的方法?看起来这只是你需要从先前的熟悉程度中知道的东西,但我猜想必须有一种简单的方法来理解编辑的位置(以及什么)。

任何想法都赞赏...欢呼

2 个答案:

答案 0 :(得分:3)

我强烈推荐Jose Valim的Crafting Rails Applications

您将完成高级项目,构建可引导您进入Rails开发的新级别的引擎和自定义类型。

来自网站:

  

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

答案 1 :(得分:-2)

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

1。)将逻辑放入模型!模型是一切都转过来的。

2。)Controller是模型和视图之间的中间人。你不要在这里放任何与从数据库中选择应该在视图中显示的数据无关的逻辑。如果您多次使用一个选择逻辑,请在模型中创建scope并在Controller中使用它。

3。)View只在那里展示东西!你这里没有任何逻辑!所有逻辑都来自模型,数据来自控制器。您在这里使用的唯一逻辑是循环显示应该显示的数据数组。

然后你有些东西不见了。如果你有一个与外部服务相关的任务,比如说一个SOAP服务,你也可以为它编写一个类!只是不使用像脚手架生成的ActiveRecord :: Base继承。您可以在其他模型中调用此类。不要把它放到控制器或复制每个需要它的类中的代码!留DRY(不要重复自己)。只需为它编写一个类,并将其包含在其他模型中!

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