如何将字符串转换为部分类名?

时间:2013-12-13 01:59:16

标签: ruby-on-rails ruby

我需要循环遍历许多预设字符串,并将这些字符串用作第三方API调用的类名。

例如,硬编码我会做这样的事情:

Stripe::BalanceTransaction.all

但我有很多这些我需要用作通用函数的一部分,并且希望能够做到这样的事情:

class_name = 'BalanceTransaction'
Stripe::class_name.all

这显然不起作用,但不确定 的工作原理。

我正在使用Ruby 2.0.0和Rails 4.0.1(因此确实可以使用ActiveSupport :: Inflector和其他模块)。

2 个答案:

答案 0 :(得分:2)

constantize正是您要找的。

"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