class Person
DEFAULT_MALE_NAME = "Joe"
DEFAULT_FEMALE_NAME = "Jane"
def give_default_name
self.name = self.class.send("DEFAULT_#{gender.upcase}_NAME")
end
end
这不起作用,因为“self.class.send”最终调用User.DEFAULT_MALE_NAME,我希望它在那里发送User :: DEFAULT_MALE_NAME。
“::”的“发送”相当于什么?
答案 0 :(得分:5)
const_get
,但您应该将常量名称作为符号传递
self.class.const_get(:"DEFAULT_#{gender.upcase}_NAME")