我試圖通過元編程來創建一些getters,但由於某種原因它似乎不工作。我這樣做:Simple Metaprogramming一些getters
RESOURCES = %w(wood stone gold)
class << self
RESOURCES.each do |resource|
define_method "#{resource}" do
resource
end
end
end
在一個rails應用程序,但我得到一個木未定義的方法,執行時。任何想法爲什麼?
(該代碼是Rails「級市<的ActiveRecord :: Base的」類中)
'attr_reader RESOURCES'會就好了 – apneadiving 2012-02-18 10:48:30
有實際上更多的定製內部define_methods,資源就在那裏使問題變得更簡單。但由於我使用關聯這一事實,它在內部更加精細。但無論如何,好評如潮。 – Spyros 2012-02-18 11:09:05
好,疑難雜症:) – apneadiving 2012-02-18 11:10:32