Ruby类方法名称中的变量

时间:2012-11-16 12:42:49

标签: ruby ruby-on-rails-3

object.send(invoked_method_name)非常有用。但我需要在像Model.send(method_name_by_variable)这样的课堂上这样做,而我不能这样做。有什么建议?感谢

1 个答案:

答案 0 :(得分:0)

Model.send(method_name_by_variable)应该是可能的,如果

  • method_name_by_variableModel
  • 的范围内

如何测试它(我在我的示例中使用StringModel应该是相同的。

<强>范围

测试您的方法是否为公共方法:

method_name_by_variable = :new
p String.public_methods.include?(method_name_by_variable) #-> true
p 'aa'.public_methods.include?(method_name_by_variable)  #-> false