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

vre*_*sys 5 ruby ruby-on-rails ruby-on-rails-3

在 Ruby/Rails api http://api.rubyonrails.org/中查找方法文档的过程是怎样的?

我们以方法ActiveRecord::Base.update为例。它被用在其中一种铁轨上。

  1. api 文档中没有提及该类的更新 http://api.rubyonrails.org/classes/ActiveRecord/Base.html
  2. updateBase 的源代码中 没有任何关于方法的内容https://github.com/rails/rails/blob/0065f378262dc3f47880ce6211c7474bc7d11f0b/activerecord/lib/active_record/base.rb
  3. 事实上,我什至在 ActiveRecord::Base.

我怀疑这个方法是在 ActiveRecord::Relation 中。不过,我不确定。

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

提前致谢!

Cha*_*ell 3

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

您仍然可以使用它的原因是因为它已被移动到ActiveRecord::Relation可以在 中看到的位置rails/activerecord/lib/active_record/relation.rb

rails/activerecord/lib/active_record.rb包含包含 的所有autoloads 。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)
Run Code Online (Sandbox Code Playgroud)

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

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