我正在處理一些代碼。我正在嘗試使用我創建的寶石打印示例顏色列表,並且它會拋出一個NoMethodError
我正在打開String類,並且正在執行此操作。NoMethodError雖然我使用元編程來定義它
def self.sample_colors
@@colors_arr.each do |color|
puts "This is #{color}".color
end
end
它應該是工作,因爲.color
應該改變有史以來顏色的數組也如此,第一圈是.red
然後.blue
等。 此代碼負責爲每種顏色創建方法。
def self.create_colors
@@colors_arr.zip(@@color_codes).each do |color,code|
self.send(:define_method,color) do
"\e[#{code}m#{self}\e[0m"
end
end
end
有什麼想法? 編輯:如果我使用.red
或.blue
它的作品,我只是不知道爲什麼,工程和這個人是不是
非常感謝。我被困在這裏像一個小時。 –
作爲最佳做法,您應該使用'public_send'而不是'send'。 –