あなたには4つのパーソナリティタイプがあり、各ユーザのテストではのランクが作成されます。それぞれです。 (例えば、テストが終了すると、ユーザーはType-Aのスコアが50、Type-Bのスコアは86、Type-Cのスコアは34、Type-Dのスコアは60となります)ユーザは、最も高いスコアを有するパーソナリティタイプによって指定される。 (タイプBなど)
パーソナリティテストの各質問は複数選択です。すべての回答は、1つまたは複数のパーソナリティタイプに一定の金額を提供します。 (例えば、質問1では、「D」の回答は、タイプAに5ポイント、タイプBに3ポイント、タイプCおよびタイプDに0ポイントを寄付する)
各質問ごとの回答あなたのバックエンドの数学をどのように実行すべきかを示す4桁のvalue
属性を持っています。例:
<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
という名前のUserオブジェクトを持っています。このオブジェクトには、type_a、type_b、type_c、type_dの4つのフィールドがあり、ユーザーが4つのパーソナリティタイプのそれぞれとどの程度うまく対応しているかを示します。あなたのユーザーモデルでは、このような方法を含む:あなたのコントローラで
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
を、ユーザーインスタンスにフォームデータを渡す:
@user.process_answer(params[:question_one])
ユーザが(に対応question_oneための2番目のオプションを選択した場合"3211"という値)、彼の性格プロフィールは、タイプAの場合3pt、タイプBの場合2pt、タイプCの場合1pt、タイプDの場合1pt増加する。
ルビー(またはレール)で「数学」を構築するにはどうすればよいですか? – Angela
Railsでは、各Userオブジェクトに4つの整数フィールド(各パーソナリティタイプごとに1つ)があります。ユーザーがフォーム情報を送信するたびに、/ Userオブジェクトの4つの整数フィールドが更新されます。例えば'if params [:question1] ==" a ";タイプ_a + = 4; 「 – JellicleCat
」(スケーリングには向いていないので、これは素晴らしい例ではありませんが、システムを実際に設計しなくても、それ以上のものを提供するのは難しいです。) – JellicleCat