是否可以插值方法名称?
我正在尝试def "cancel_#{appointment.id}"
进行这项工作,但是没有运气。谢谢
答案 0 :(得分:8)
define_method "cancel_#{appointment.id}" do
# your method body
end
答案 1 :(得分:0)
最好使用define_method
,但可以改用Module#class_eval的版本,该版本将字符串作为参数:
class C
end
x = 'cat'
C.class_eval "def #{x}; 'meow'; end"
C.instance_methods.include?(:cat)
#=> true
C.new.cat
#=> 'meow'