在rails中添加模型范围的文档

Chr*_*ley 8 ruby-on-rails rdoc scopes ruby-on-rails-3

我不确定这是否真的可行,但我试图通过在我们的app/models文件中添加范围的文档来使我们的rails应用程序的文档更完整.我想要尝试做的是:

# This is a description of what the scope does and the action that it performs
scope :newest_records, order("created_at desc").limit(50)
Run Code Online (Sandbox Code Playgroud)

然后当我在应用程序上运行rdoc时,我希望将其newest_records列为公共类方法以及更传统的方法,这些方法将记录如下:

# some more documentation about this method
def self.a_class method
  ....
end
Run Code Online (Sandbox Code Playgroud)

编辑

我意识到这个问题可能有点含糊不清.所以这里是一个澄清的尝试:目前,当我尝试在scope声明上方添加注释行时,我没有得到RDoc为该范围生成的文档.我知道RDoc可以获取元方法/属性,否则它不会在声明的文档中显示属性attr_accessor.所以我的问题是如何在我的文件中添加注释,以便:

  • 该方法出现在我的RDoc生成的文档中
  • 它看起来像一个公共类方法(而不是公共实例方法等)

Chr*_*ley 5

在RDoc Docs中进行了一些挖掘后,我想我已经设法回答了我自己的问题.

您可以按如下方式记录范围:

##
# :singleton-method:
# Documentation for the scope to explain what it does
scope :newest_records, order("created_at desc").limit(50)
Run Code Online (Sandbox Code Playgroud)

双哈希用于获取元编程方法,如果您正在创建实例方法,那么这就是您所需要的.但是,当作用域创建一个类方法时,您还需要使用:singleton-method:行来表示.在以下行中记录正常继续.

您可以在RDoc文档中查看用于记录元方法等的完整语法