如何在Rails中动态调用或调用类?

com*_*omb 11 ruby ruby-on-rails class dynamic invoke

假设我可以构造一个匹配现有类的字符串,我该如何调用它?

例如,我有几个类:

  • MyClass1的
  • MyClass2
  • MyClass3

我想通过构造一个匹配其名称的字符串来动态调用它们.如果他们都有方法"方法",我该如何做这样的事情?:

(1..3).each do |n|
  ("MyClass"+n).methods
end
Run Code Online (Sandbox Code Playgroud)

zsq*_*are 18

constantize符合条件.你可以在这里阅读更多相关信息.在你的情况下,它将是这样的:

(1..3).each do |n|
  "MyClass#{n}".constantize.methods
end
Run Code Online (Sandbox Code Playgroud)