我正在编写一个迭代哈希的Model
函数,其键的名称与模型属性名称相同。我想将散列键的值与同名的model属性中包含的值进行比较。但是,当我生成属性名称时,我不知道如何实际引用实际的模型名称及其相应的属性。目前我正在做以下事情:
def grade
num_correct = 0
answers = self.class.answers
answers.each do |question, value|
db_question = question
num_correct = num_correct + 1 if db_question.to_i == value
end
if num_correct < 22
return "Beginner"
elsif num_correct >= 22 and num_correct < 41
return "Intermediate"
else
return "Advanced"
end
end
我希望db_question
实际上是模型属性&#34; db_question&#34;但是我不知道如何从相当于实际模型属性的简单字符串转换到模型属性本身。
答案 0 :(得分:1)
在你的情况下:
value = model.send 'Beginner'.downcase.to_sym
通常 - 自己打印一个字符串.....:
'yolo'.send 'to_s'.to_sym
相当于
'yolo'.to_s
相当于
'yolo'