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

时间:2011-09-01 17:11:36

标签: ruby-on-rails ruby-on-rails-3 rdoc scopes

我不确定这是否真的可行,但我试图通过在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)

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

# some more documentation about this method
def self.a_class method
  ....
end

修改

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

  • 该方法出现在我的RDoc生成的文档中
  • 它显示为公共类方法(与公共实例方法等相反)

2 个答案:

答案 0 :(得分:5)

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

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

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

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

您可以在RDoc Documentation

中查看记录元方法等的完整语法

答案 1 :(得分:1)

范围是类方法,因此Rdoc正确地执行它。我会说,就像Rdoc所知道的那样。

您可以更好地控制使用像YARD这样更具扩展性的东西。