如何理解Ruby文档?
我见过这样的代码:如何理解Ruby文档?,ruby,Ruby,我见过这样的代码: Net::HTTP::Post.new(url) 如果我随后使用ri,如下所示: $ ri Net::HTTP::Post 我几乎没有得到任何文档,并且: $ ri Net::HTTP::Post.new 导致 Nothing known about Net::HTTP::Post.new 在阅读Net::HTTP的文档时,我怀疑代码应该使用Net::HTTP#request_post。我仍然发现正确的方法来使用这个模块。为什么Net::HTTP::Post.Net似
Net::HTTP::Post.new(url)
如果我随后使用ri
,如下所示:
$ ri Net::HTTP::Post
我几乎没有得到任何文档,并且:
$ ri Net::HTTP::Post.new
导致
Nothing known about Net::HTTP::Post.new
在阅读Net::HTTP
的文档时,我怀疑代码应该使用Net::HTTP#request_post
。我仍然发现正确的方法来使用这个模块。为什么Net::HTTP::Post.Net
似乎有效?即使使用Net::HTTP.request\u post
,我也会得到:
undefined method `request_post' for Net::HTTP:Class.
为了澄清我的问题,我想知道如何:
- 查找ruby的最佳文档
- 给出所提供的示例,获取实现目标的最佳方法(即,要发出HTTP POST请求,我将添加我需要在正文中使用提供身份验证、cookie和数据)
- 当方法被注释为“R”时,理解它的含义(这是指“只读”吗?这没有意义,因为我需要设置请求主体,这意味着写
作为对比,这是Python的等效文档,我理解(我自己也是Python开发人员):以下是我最终会接受的答案,除非其他人有更好的答案: 为了理解Ruby的文档,请按顺序执行以下操作:
- 阅读最新版本Ruby中的模块文档。使用Ruby-doc.org,即使这个版本是针对Ruby 2.0的,而您使用的是Ruby 1.8,它仍然可能更加清晰和完整
- 使用google查找代码示例
- 使用irb检查示例是否实际有效
- 使用ri检查您的ruby版本的文档是否存在。如果存在,请查看您的版本中可能存在的差异
- 使用反射/内省来尝试发现任何可能有用的公开方法
Net::HTTP::Post
可能是对运行时创建的类的引用,也可能是对动态创建的类的引用。这也意味着,我猜它只是HTTP方法预初始化为“Post”的HTTPGenericRequest
的别名
millimoose:我注意到了。有没有什么约定可以让我知道如何做到这一点?有没有关于使用Net::HTTP模块的好文档,因为在这种情况下,ri并不总是提供好的文档?你正在运行哪个版本的Ruby?维迪亚:现在,我正在使用古老的Ruby 1.8.7,一个d我知道1.9和2.0之间的区别,但是文档问题似乎适用于所有版本。@Arafangion我想说的是,先试试ruby doc,当旧版本没有用时,使用最新版本的文档。(这里似乎就是这样。)2.0似乎增加了net/http
的概念文档。