vre*_*sys 5 ruby ruby-on-rails ruby-on-rails-3
在 Ruby/Rails api http://api.rubyonrails.org/中查找方法文档的过程是怎样的?
我们以方法ActiveRecord::Base.update
为例。它被用在其中一种铁轨上。
update
Base 的源代码中
没有任何关于方法的内容https://github.com/rails/rails/blob/0065f378262dc3f47880ce6211c7474bc7d11f0b/activerecord/lib/active_record/base.rbActiveRecord::Base
.我怀疑这个方法是在 ActiveRecord::Relation 中。不过,我不确定。
我是 Ruby/Rails 的初学者,我来自 Java 世界,我通常希望在该类的 javadoc 中看到所有方法(也继承)。对于 Ruby/Rails,最有效的查找混合/继承方法的相关文档是什么?
提前致谢!
ActiveRecord::Base#update
根据APIdock 的说法,您可能找不到任何好的文档,因为自 Rails 版本 2.3.8 以来该方法已被弃用。。
您仍然可以使用它的原因是因为它已被移动到ActiveRecord::Relation
可以在 中看到的位置rails/activerecord/lib/active_record/relation.rb
。
rails/activerecord/lib/active_record.rb
包含包含 的所有autoload
s 。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 的详细信息。