簡體   English   中英

如何插入紅寶石方法名稱

[英]How to interpolate in a ruby method name

可以插值方法名稱嗎? 我正在嘗試使此工作定義為def "cancel_#{appointment.id}"但沒有運氣。 謝謝

使用define_method

define_method "cancel_#{appointment.id}" do
  # your method body
end

最好使用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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM