我正在編寫我的第一個rails插件,可以使用一些幫助。以一種非常簡單的方式,我希望允許開發人員指定一個可以通過rake任務計算的值。我在想這樣的事情...爲Rails編寫ActiveRecord插件
class User < ActiveRecord::Base
monitor "Users", count
monitor "Active Users", count("activated_at != NULL")
end
- 我猜顯示器需要使用的ActiveRecord :: Base的一個類的方法,但如何/我在哪裏,我的插件指定了嗎?
monitor
函數的參數不應該是值而是要執行的代碼塊。我不太清楚指定這個的最好方法,並保持簡單的語法。也許它必須是monitor "Active Users", {count "activated_at != NULL"}
?- 如果開發者不需要指定
User.count
,只需要count
,即它會自動拾取類(並且塊將在類上調用而不是實例)。如果這是不可能的,我想沒有理由將監控語句放入模型中(見#5)。 - 這些值的實際計數(即塊的執行)將由rake任務離線完成。
monitor
函數應該如何使這些塊可用於rake任務?將它們存儲在類變量中? - 也許監視語句根本不需要在模型中指定。也許它會讓它混亂,所以我會歡迎任何其他地方放置它們。
我只是在草擬出我的想法,並試圖弄清楚在Ruby中什麼是不可能的。任何幫助讚賞。
更新:我會盡量在插件的目的上更加清晰。我希望開發人員能夠定義應該由rake任務監視的度量。 rake任務將遍歷這些度量標準,並將這些值寫入文件(我簡化了一下)。耙任務將是非常簡單的,像rake monitors:update
(即不需要PARAMS)
謝謝,你是對的SQL - 這只是一個例子。我認爲named_scopes將會非常有用,但它並不能完全解決我的問題。我更新了這個問題,提供了更多關於插件試圖實現的信息。 – ideasasylum 2009-07-08 13:04:46