私はいくつかのコードを作成しています。私は作成した宝石を使ってサンプルカラーのリストを印刷しようとしています。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
それが動作する場合、それは動作しますなぜ私はちょうど得ることはありませんし、この1つは
ありがとうございます。私はここのように1時間ほど立ち往生した。 –
ベストプラクティスとして、 'send'の代わりに' public_send'を使うべきです。 –