Ruby on rails 在一个不熟悉的Rails项目中,您将如何发现其中的精华?

Ruby on rails 在一个不熟悉的Rails项目中,您将如何发现其中的精华?,ruby-on-rails,rubygems,Ruby On Rails,Rubygems,我是一名新的Rails开发人员,刚刚加入一个开发团队。首席开发人员正在指导我创建一个应用程序,我们使用了很多对我来说是新的宝石。通常,我并不清楚方法来自哪个gem 例如,在测试中,我们将使用类似于Factory(:client)的东西获取对象。这种方法来源于;我知道这一点,因为首席开发人员告诉我。如果我不知道,我可能会浏览Gem文件,猜测工厂女孩Gem可能是一个候选对象,并可能通过内省将一些输出整合起来以确认。但它并不像FactoryGirl::Factory之类的名字那样明显。同样的情况也适用

我是一名新的Rails开发人员,刚刚加入一个开发团队。首席开发人员正在指导我创建一个应用程序,我们使用了很多对我来说是新的宝石。通常,我并不清楚方法来自哪个gem

例如,在测试中,我们将使用类似于
Factory(:client)
的东西获取对象。这种方法来源于;我知道这一点,因为首席开发人员告诉我。如果我不知道,我可能会浏览Gem文件,猜测工厂女孩Gem可能是一个候选对象,并可能通过内省将一些输出整合起来以确认。但它并不像FactoryGirl::Factory之类的名字那样明显。同样的情况也适用于我们使用的测试:“cucumber”一词不会出现在文件中


如果你拿到了这个应用程序,并且不熟悉这些gems,你怎么知道所有的方法都是从哪里来的?这在Rails开发领域是个问题吗?

如果
rake gems
对你来说不够具体,你对使用IDE有什么异议吗?我喜欢用Netbeans编写Ruby;在方法名称上单击鼠标右键会显示“转到->定义”等选项。

AckMate、ack、grep、在Project中搜索← 根据你的编辑,他们是你的朋友


另外,(如果不是在Bundler上)或者
bundle open
如果是,用于导航gems。

如果我是一个项目的新手,我会阅读所有正在使用的gems,并对我不熟悉的gems进行一些研究。谷歌“gem_name rdoc”和99%的时间里,你都能找到一个像样的API。由于您是rails新手,您可能需要在前期投入更多的时间,但您的团队会欣赏您的学习热情

使用方法#源位置# 稍后再回答我自己的问题,我至少可以详细说明如何,正如我所说的“通过内省将一些输出整合在一起”

如果可以确定调用方法的对象,那么获取此信息的一种方法是使用
method\source\u location

例如,如果您正在使用my gem Authority,您的控制器中将有如下方法调用:

class WidgetsController < ActionController::Base
  #...
  authorize_actions_for Widget
  #...
end

这将使您获得类似于
[“/Users/yourname/.rvm/gems/ruby-1.9.3的内容-p125@yourproject/gems/authority-2.0.0/lib/authority/controller.rb“,27]
,这肯定告诉您这是在authority gem中定义的。

FactoryGirl现在提供了一种更为自解释的语法:
FactoryGirl.build(:client)
method = WidgetsController.method(:authorize_actions_for)
method.source_location