首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Rails创建“个性测试”?

如何使用Rails创建“个性测试”?
EN

Stack Overflow用户
提问于 2011-04-13 00:14:45
回答 1查看 721关注 0票数 1

这既是对现有开源模块的请求,也是对“架构”的请求。数据收集部分(询问问题)看起来可以使用测量器或向导宝石来完成。

在is...how上我需要帮助的那部分,你会对答案进行“加权”或“评分”来得出“个性”吗?例如,Myers-Briggs类型测试会提出多个问题,然后描述16种性格中的一种。

我想将我的结果限制在四个,但我不确定如何。标准“如果你得了10-16分,你就是摇滚明星;如果你得了5-9分,那就回家吧”,我不这么认为。

这更多的是一个“设计”的问题,所以如果有更好的地方我可以问,让我知道,但它感觉人们可能知道如何通过编程在rails中做这种简化的专家系统。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-13 01:24:56

您有四种个性类型,每个用户的测试都会为每种类型创建一个排名。(例如,在测试结束时,用户将具有A型的分数为50,B型的分数为86,C型的分数为34,D型的分数为60 )用户由具有最高分数的任何个性类型指定。(例如B型)

性格测试中的每个问题都是多项选择。每个答案对一种或多种性格类型都有一定的贡献。(例如,在问题1中,"D“的答案将为A类贡献5分,B类贡献3分,C类和D类贡献0分。)

每个问题的每个答案都有一个4位数的value属性,指示应该如何在后端执行数学运算。例如:

代码语言:javascript
运行
复制
<input type="radio" name="question_one" value="5400" />
<input type="radio" name="question_one" value="3211" />
<input type="radio" name="question_one" value="5608" />
<input type="radio" name="question_one" value="9006" />

下面是在Ruby on Rails中处理后端的方法。首先,您有一个名为@user的用户对象,它有四个字段: type_a、type_b、type_c和type_d,表示用户与四种个性类型中的每一种的一致性。在您的用户模型中,包含如下方法:

代码语言:javascript
运行
复制
def process_answer(value)
  self.type_a += value[0].chr.to_i
  self.type_b += value[1].chr.to_i
  self.type_c += value[2].chr.to_i
  self.type_d += value[3].chr.to_i

在控制器中,将表单数据传递给用户实例:

代码语言:javascript
运行
复制
  @user.process_answer(params[:question_one])

如果用户选择question_one的第二个选项(对应于值"3211"),那么他的个性简档将为类型A增加3分,为类型B增加2分,为类型C增加1分,并且为类型D增加1分。

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

https://stackoverflow.com/questions/5638390

复制
相关文章

相似问题

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