4

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

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

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

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

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

提前致谢!

4

2 回答 2

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)

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

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

于 2012-07-18T17:11:09.720 回答
1

ActiveRecord::Base.update 不再存在,您可以在此处看到:http: //apidock.com/rails/ActiveRecord/Base/update/class,现在是 ActiveRecord::Relation,如下所示:http://apidock。 com/rails/ActiveRecord/关系/更新

于 2012-07-18T17:15:15.380 回答