我有一个用户创建测验问题的应用程序。他们可以从各种答案类型中进行选择:是/否布尔值、真/假布尔值、整数、字符串等。
a) 我应该如何存储这些答案?在字符串类型的一列中?或者,还有更好的方法?
b) 当用户回答问题时,我将如何处理验证?不同的答案类型将需要不同的验证。
谢谢!
我有一个用户创建测验问题的应用程序。他们可以从各种答案类型中进行选择:是/否布尔值、真/假布尔值、整数、字符串等。
a) 我应该如何存储这些答案?在字符串类型的一列中?或者,还有更好的方法?
b) 当用户回答问题时,我将如何处理验证?不同的答案类型将需要不同的验证。
谢谢!
我会建议两列,两者都是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