如何查找ActiveRecord :: Base.update的文档?

时间:2012-07-18 16:59:13

标签: ruby-on-rails ruby ruby-on-rails-3

在Ruby / Rails api http://api.rubyonrails.org/中查找方法文档的过程是什么。

我们以方法ActiveRecord::Base.update为例。它用在其中一个railscast中。

  1. 在课程的api doc中没有提及更新 http://api.rubyonrails.org/classes/ActiveRecord/Base.html
  2. 有 Base的源代码中没有update方法 https://github.com/rails/rails/blob/0065f378262dc3f47880ce6211c7474bc7d11f0b/activerecord/lib/active_record/base.rb
  3. 事实上,我甚至无法在包含的任何类中找到此方法 ActiveRecord::Base
  4. 我怀疑这个方法在ActiveRecord :: Relation中。但是,我不确定。

    我是Ruby / Rails的初学者,我来自Java世界,我通常希望在类的javadoc中看到所有方法(也继承)。对于Ruby / Rails,最有效的查找混合/继承方法的相关文档是什么?

    提前致谢!

2 个答案:

答案 0 :(得分:3)

您可能找不到关于ActiveRecord::Base#update的任何好文档,因为根据APIdock.,自Rails版本2.3.8以来该方法已被弃用。

您仍然可以使用它的原因是因为它已移至ActiveRecord::Relation,这可以在rails/activerecord/lib/active_record/relation.rb中看到。

rails/activerecord/lib/active_record.rb包含autoload的所有ActiveRecord,其中包含:Relation

ActiveRecord::Relation#update的文档如下:

  

更新对象(或多个对象)并将其保存到数据库中,   如果验证通过。生成的对象是否返回   对象是否已成功保存到数据库中。

     

====参数

     
      
  • + id + - 这应该是id或要更新的ID数组。
  •   
  • + attributes + - 这应该是属性的散列或散列数组。
  •   
     

====示例

# Updates one record 
Person.update(15, :user_name => 'Samuel', :group => 'expert')

# Updates multiple records 
people = { 1 => { "first_name" => "David" }, 2 => { "first_name" => "Jeremy" } }       
Person.update(people.keys, people.values)

编辑:要回答您的初始问题,在大多数情况下,只要信息是最新的,在api.rubyonrails.org上搜索就足以找到您要查找的信息。

有关可能较旧的API详细信息,请使用apidock.com/rails。在那里搜索“更新”实际上会显示两个版本(::Base::Relation)并提供有关每个版本和每个版本的Rails的详细信息。

答案 1 :(得分:1)

ActiveRecord :: Base.update不再存在了,你可以在这里看到:http://apidock.com/rails/ActiveRecord/Base/update/class,它的ActiveRecord ::现在关系如此:http://apidock.com/rails/ActiveRecord/Relation/update