Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails动态方法名_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails动态方法名

Ruby on rails Rails动态方法名,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想要动态的方法名,比如usd\u to\u eureur\u to\u usd 我有货币=['uah'、'rur'、'usd'、'eur']并想混合使用 我试着用define\u方法来做,但不知道如何正确地做 class MyClass CURRENCIES = %w|uah rur usd eur| CURRENCIES.permutation(2).each do |(c1, c2)| define_method(:"#{c1}_to_#{c2}") do pu

我想要动态的方法名,比如
usd\u to\u eur
eur\u to\u usd

我有
货币=['uah'、'rur'、'usd'、'eur']
并想混合使用

我试着用
define\u方法
来做,但不知道如何正确地做

class MyClass
  CURRENCIES = %w|uah rur usd eur|
  CURRENCIES.permutation(2).each do |(c1, c2)|
    define_method(:"#{c1}_to_#{c2}") do
      puts "Hi, I am #{__callee__} method"
    end
  end
end
现在已经定义了12个方法。例如:

MyClass.new.eur_to_usd
#⇒ Hi, I am eur_to_usd method

这几乎不取决于这些方法的实际主体。他们有共同点吗?共同点我想只有
\u to
currency1\u to_currency2
我问的是关于方法体的问题。很好的答案@mudasobwa