私は現在、次のようにユーザーテーブルに成績を保存するアプリに取り組んでいます(jsonエンコード):
{"6":"6th Grade","7":"7th Grade","8":"8th Grade"}
Users モデルには、各学年の範囲に加えて、それらすべてを結合するための定数が設定されています。
ELEMENTARY = %w(Kindergarten 1st\ Grade 2nd\ Grade 3rd\ Grade 4th\ Grade 5th\ Grade)
MIDDLE_SCHOOL = %w(6th\ Grade 7th\ Grade 8th\ Grade)
HIGH_SCHOOL = %w(9th\ Grade 10th\ Grade 11th\ Grade 12th\ Grade)
GRADES = ELEMENTARY + MIDDLE_SCHOOL + HIGH_SCHOOL
users テーブルに保存されている JSON データを解析して、ユーザーがどのグレードにまたがっているかを吐き出すエレガントなソリューションを見つけようとしています。したがって、ユーザーが次の場合:
{"0":"Kindergarten","1":"1st Grade","2":"2nd Grade","3":"3rd Grade","4":"4th Grade","5":"5th Grade", "6":"6th Grade", "9":"9th Grade"}
その場合、ユーザーは「一般」グレードのスパンにいます。
ユーザーがいずれかの定数で選択されたグレードを持っている場合、それらはその定数のグレード範囲にあります。例えば:
{"0":"Kindergarten"}
それらを小学校に入れます。