【问题标题】:Can I view Rails documentation with pry?我可以用 pry 查看 Rails 文档吗?
【发布时间】:2014-11-24 20:39:40
【问题描述】:

是否可以使用 pry 查看/浏览 Rails 文档?怎么样?

(pry-rails 似乎用于项目源代码,pry-doc 涵盖 Core Ruby。)

ri 是 Rails 首选的本地文档浏览工具吗?

谢谢!

【问题讨论】:

  • this 有用吗?
  • @August,这就是我一直在寻找的地方,但 show-doc Pry::Method 有效,例如,show-doc ActiveRecord::Base 无效。
  • @SexxLuthor 您可能没有该文档。运行gem server 时是否会显示 ActiveRecord?
  • @D-side,确实如此,但没有文档链接。我猜这个文档是依赖 ri 的?

标签: ruby-on-rails pry


【解决方案1】:

Pry 只会向您显示已显式加载的依赖项的文档。获取所有 Rails 依赖项的最简单方法是在 Rails 项目的目录中运行 pry,如下所示:

pry -r ./config/environment

现在您可以通过 pry 查看 Rails 的内部文档了。但是,正如您所指出的,Rails 的文档在编写时考虑了 ri。因此,如果您运行 ri ActiveRecord::Base,而不是使用 show-doc,您应该会看到:

ActiveRecord::Base < Object

------------------------------------------------------------------------------
Includes:
(from gem activerecord-4.1.1)
  Core
  Persistence
  NoTouching
  ReadonlyAttributes
  ModelSchema
  Inheritance
  Scoping
  Sanitization
  AttributeAssignment
  ActiveModel::Conversion
  Integration
  Validations
.... it eventually gets to the actual documentation but you get the idea ...

(我认为show-doc 不适用于ActiveRecord::Base,因为该文件的源代码中有#:nodoc: 指令。也许有人可以在cmets 中加入或添加编辑。)

或者,您可以手动加载所需的每个依赖项。如果您打开一个正常的 pry 会话并运行 require 'active_record',则相同的 ri 命令将起作用。

如果您使用 pry-rails gem 或自定义初始化程序将 pry 设置为默认 REPL,这也应该适用于 rails 控制台。

【讨论】:

  • 谢谢,我猜 pry 依赖于 ri?后来我也意识到 ActiveRecord::Base 并不是最好的例子——可能 Core 会更好。它似乎也可以在没有“要求”的情况下工作(在不排除 ri/doc 的另一台机器上)。 show-doc 是否完全适用于 Rails?似乎只有 ri 方法。
  • 谢谢@Yoshiki。 (问题主要是关于其他开发人员如何/是否使用带有 Rails 文档的 pry,或者仅使用 ri 或 api.rubyonrails.org/.
  • 我认为这取决于:nodoc: 标志。看看来自 active_record 的 base.rb:github.com/rails/rails/blob/master/activerecord/lib/… Pry 可能在 show-doc 的上下文中尊重 :nodoc: 指令,但在使用 ri 时有不同的规则。为什么这样做?为什么 Rails 在 base.rb 上有一个 nodoc 指令?我不能说我很确定,因为我一般不熟悉 rdoc。如果您真的很好奇,我建议您在 rails irc 频道或 #pry irc 频道询问。
  • 还有@SexxLuthor 我知道show-doc 可以与ActiveRecord::Validations 一起使用。
猜你喜欢
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 2010-12-04
相关资源
最近更新 更多