根据用户选择存储和验证不同类型

时间:2013-01-13 00:41:00

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个用户创建测验问题的应用程序。他们可以从各种答案类型中进行选择:yes / no boolean,true / false boolean,integer,string等。

a)我应该如何存储这些答案?在一列字符串类型?或者有更好的方法吗?

b)当用户回答问题时,我将如何处理验证?不同的答案类型需要不同的验证。

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议使用两列Strings。制作第一个answer,另一个answer_type

然后,您可以创建自定义验证:

class MyValidator < ActiveModel::Validator
  def validate(record)
    if record.answer_type == 'String'
      # preform String validations on record.answer
    else if record.answer_type == 'Integer'
      # preform Integer validations on record.answer
    else if record.answer_type == 'Boolean'
      # preform Boolean validations on record.answer
  end
end