0
NAMES = ['orange', 'pear']
Fruit.class_eval do
NAMES.each do |n|
define_method "is_#{n}?" do
self.name == Fruit.find_by_name(n)
end
end
end
對於水果對象,我希望能夠明確地詢問它是否是橙色,例如,水果對象的名稱屬性。當我打電話給Fruit.find_by_name('orange')。is_orange?我弄錯了。我究竟做錯了什麼?元編程實例方法 - 語法錯誤?
我懷疑你應該使用[`instance_eval`](http://ilikestuffblog.com/2009/01/09/fun-with-rubys-instance_eval-and-class_eval/) – meagar 2011-02-06 15:28:43
你可以很容易地驗證你的方法正在被調用。因此,這不是錯誤的元編程,而是你的邏輯。檢查你的ActiveRecord(?)思考 – Phrogz 2011-02-06 15:34:16