首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理不同的答案类型

如何处理不同的答案类型
EN

Stack Overflow用户
提问于 2013-11-27 12:38:44
回答 2查看 51关注 0票数 1

我有Risk模型。我想为每个risk存储预定义的User

  1. 你抽烟吗?是的(布尔型)

  1. 多少支烟?(整数)

  1. 你有糖尿病吗?since ..。

我应该如何实现Risk,使它能够处理不同类型的答案(整数、布尔、字符串)?表格应该是什么样子?现在,我正在考虑Risk如下:

代码语言:javascript
复制
Risk
  question(string)
  answer_type(integer)
  answer

我希望能够在未来动态地添加更多的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-28 13:21:45

我的想法是:

代码语言:javascript
复制
Risk
  user_id (integer)
  question_id (integer)
  question(string)
  answer_type(integer)
  answer (string)

然后,如果您想要做一些统计,您将需要解析答案依赖于answer_type。

代码语言:javascript
复制
answer_type -> 1 for text answer
answer_type -> 2 for integer answer
...

例如,如果要计算整数答案的平均值:

代码语言:javascript
复制
risks = Risks.where(question_id: 1)
    if risk.answer_type == 2
      total += answer.to_i
    end
    average = total / User.all.count
票数 1
EN

Stack Overflow用户

发布于 2013-11-27 12:51:13

理想情况下,

代码语言:javascript
复制
question(string)
answer (text)

在风险模型中,添加一个基于问题的正确格式返回答案的方法。

代码语言:javascript
复制
require 'string_extensions'
Class Risk
 ...

  def correct_answer
    if self.question == 'Are you smoker?'
      self.answer.to_bool # Add the Gist-code in your libs and include this 
    elsif self.question == 'How many cigarettes?'
      self.answer.to_i
    else 
      self.answer
    end
  end

结束

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20242756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档