如何在Rails文档中发现可用的方法?

时间:2011-03-21 03:24:12

标签: ruby-on-rails

我是Rails的新手,我发现它非常不透明。我有一份最新的 Agile Web Development with Rails 的副本,但我担心没有这本书我会完全迷失。

例如,按照本书中的软件仓库示例,在向模型添加验证时,您可以

class Product < ActiveRecord::Base

  validates :title, :description, :image_url, :presence => true

end

似乎很容易,除了没有AWDwR书我永远不会想到这一点。 ActiveRecord :: Base文档中没有提到validates方法。

在我看来,对于Rails,你应该神秘地知道项目中任何给定点可用的方法。但是如果你不知道,你应该如何找出(除了记住一本500多页的书)?

我可以用另一种方式表达问题:在我的Product类中,我可以使用名为validates的方法。如何将此方法提供给我的Products类?即使知道它是在ActiveModel :: Validations :: ClassMethods中定义的(我知道这是因为我查了一下)我无法弄清楚如何它可用于我的Product类。

4 个答案:

答案 0 :(得分:1)

我每天都使用http://railsapi.com/,我希望你也觉得它很有帮助!

答案 1 :(得分:1)

答案 2 :(得分:1)

Rails ActiveRecord确实支持列和方法的模型内省,只需使用以下

$ rails console
1.9.3> Product.columns
1.9.3> => [#<ActiveRecord::ConnectionAdapters::PostgreSQLColumn:0x007fe853d2c1f0 @name="id", @sql_type="integer", @null=false, ...

1.9.3> Product.methods
1.9.3> => [:_validators, :before_add_for_memberships?, :before_add_for_memberships=, :before_add_for_memberships, :after_add_for_memberships?, ...

理论上,这将允许您发现可能感兴趣的可能方法(或列),然后您可以使用其他答案中引用的API文档源。

答案 3 :(得分:0)

已经差不多一年了,现在我可以回顾一下,我发现学习rails的最佳资源是http://guides.rubyonrails.org/的Rails指南。他们把所有东西都很好地结合在一起,提供一些例子,然后给我一个API文档的入口点(而不是像我刚开始时那样随意挥动)。