我需要循环遍历许多预设字符串,并将这些字符串用作第三方API调用的类名。
例如,硬编码我会做这样的事情:
Stripe::BalanceTransaction.all
但我有很多这些我需要用作通用函数的一部分,并且希望能够做到这样的事情:
class_name = 'BalanceTransaction'
Stripe::class_name.all
这显然不起作用,但不确定 的工作原理。
我正在使用Ruby 2.0.0和Rails 4.0.1(因此确实可以使用ActiveSupport :: Inflector和其他模块)。
答案 0 :(得分:2)
constantize
正是您要找的。 p>
"Stripe::BalanceTransaction".constantize.all
http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-constantize
答案 1 :(得分:1)
class_name = 'BalanceTransaction'
Stripe.const_get(class_name).all