如何生成属性名称,并在rails模型中获取它们的值

时间:2015-02-10 01:00:33

标签: ruby-on-rails ruby

我正在编写一个迭代哈希的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;但是我不知道如何从相当于实际模型属性的简单字符串转换到模型属性本身

1 个答案:

答案 0 :(得分:1)

在你的情况下:

value = model.send 'Beginner'.downcase.to_sym

通常 - 自己打印一个字符串.....:

'yolo'.send 'to_s'.to_sym

相当于

'yolo'.to_s

相当于

'yolo'