0
所以我有如下的AR模型,我想動態生成一些實例方法,如#fallbackable_header_script, #fallbackable_header_content...
等,就像我已經寫過的#fallbackable_background
一樣。什麼是最好的方法來做到這一點?在ActiveRecord模型中使用def_method
class Course < ActiveRecord::Base
FALLBACKABLE_ATTRIBUTES = :header_script, :header_content, :footer_content
OTHER_FALLBACKABLE_ATTRIBUTES = :css_config
def fallbackable_background
read_attribute(:background) ? background : self.user.background
end
end
我試過def_method,但下面不工作...
[:foo, :bar].each do |meth|
fallbackable_meth = "fallbackable_#{meth}".to_sym
def_method(fallbackable_meth) { read_attribute(meth) ? read_attribute(meth) : self.user.send(meth) }
end
#=>NoMethodError: undefined method `def_method' for #<Class:0x007fe4e709a208>
我也想通了當我再次看着它的時候。 :) 謝謝! – randomor
感謝您的提示也! – randomor