2011-09-01 23 views
8

我不確定這是否實際可行,但我試圖通過在我們的app/models文件中添加範圍文檔來使我們的rails應用程序的文檔更加完整。我在尋找什麼,試圖做的是:在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爲範圍生成的NO文檔。我知道RDoc可以獲取元方法/屬性,否則它不會在attr_accessor聲明的文檔中顯示屬性。所以我的問題是我怎麼向我的文件添加註釋,以便:

  • 的方法出現在我的RDoc生成的文檔
  • 它顯示爲一個公共類方法(而不是公共實例方法等)
+0

究竟是什麼問題的完整的語法,是它無法加入實況...「或「錯誤添加實況......」等。我只是不確定。試用版時,評論目前是否顯示? rdoc顯示它嗎?樂於幫助,只是不確定問題究竟是什麼。 –

+0

@Michael Durrant - 好點。在二讀時,我的問題措辭不是很好。將編輯更清晰。 –

回答

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

作用域是類方法,所以Rdoc做得很對。我會說,就Rdoc而言,這是工作的。

你可能更好地控制使用像YARD這樣更加可擴展的東西。

+0

感謝Robert的建議。已經看到YARD生成的文檔 - 它們看起來不錯,所以很可能在將來使用它 –