很多问卷调查的网站都可以让人自定义问卷,添加多选题/单选题/填空题,最后生成一个表单。
我大概的知道实现这种功能的方法,但是感觉实现起来很复杂。
我不是想直接拿到一个直接实现了问卷调查的 GEM, 而是想知道如何更好的实现此类动态表单。 谢谢。
#app/models/exam.rb
class Exam < ActiveRecord::Base
has_many :raw_questions #将各种类型的问题和试卷关联起来
def questions
@questions = [];
self.raw_questions.each do |raw_questions|
#利用强大的ruby元编程能力,将raw_questions的type字段转换为对应类型的Model
question = raw_questions.type.camelize.constantize
question.find(raw_questions.id) #找到并实例化相应的问题。
@questions.push(question)
end
return @questions
end
end
感谢@bhuztez 质疑了我一下。 我思索了一下,感觉用 ruby 的元编程方法似乎不错。