如何使用变量引用类常量

时间:2014-01-03 05:21:31

标签: ruby

我有一个班级:

class VoteType < MyModel
    UPVOTE          = where(slug: "up-vote").pluck(:id).first
    DOWNVOTE        = where(slug: "down-vote").pluck(:id).first
    FAVORITE        = where(slug: "favorite").pluck(:id).first
    SPAM                = where(slug: "spam").pluck(:id).first
end

如果我有这样的变量:

myVar = "UPVOTE"

如何使用变量引用类中的常量?我尝试了以下不起作用:

VoteType::send(myVar)

3 个答案:

答案 0 :(得分:2)

使用以下内容:

VoteType.const_get(myVar)

答案 1 :(得分:0)

常量不是方法,仅发送 可以使用方法。

使用Module#const_get访问常量,例如

VoteType.const_get('UPVOTE')

答案 2 :(得分:-2)

“eval”适合你吗?

a = "aaaaaa"
b = 'a'
c = eval b
puts c

输出是:aaaaaa