Ruby on rails 如何使:级别等于特定天数?

Ruby on rails 如何使:级别等于特定天数?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在创建一个习惯跟踪应用程序。当用户开始新习惯时,他必须先完成5个层次,然后才能把自己当作一个大师。 我想把等级分为5级,总共100天 水平日 1 = 10 2 = 15 3 = 20 4 = 25 5=30我不确定你的其他参数在做什么,但我认为总体思路是这样的 t.string "habitname" t.integer "levelone" t.integer "leveltwo" etc. t.references :user, index: t

我正在创建一个习惯跟踪应用程序。当用户开始新习惯时,他必须先完成5个层次,然后才能把自己当作一个大师。 我想把等级分为5级,总共100天

水平日 1 = 10 2 = 15 3 = 20 4 = 25
5=30我不确定你的其他参数在做什么,但我认为总体思路是这样的

t.string "habitname"
t.integer "levelone"
t.integer "leveltwo" etc.
t.references :user, index: true
t.timestamps null:false
然后在控制器中访问这些值

@habit = Habit.find(:id)
@habit.levelone = whatever days

您可以只在模型中存储天数,然后添加一个方法来返回该天数的级别。无需在模型中存储:level,只需:天


如果我没弄错的话,你会想要一个等级

第六级是大师级。

我应该把:@habity=habity.find:id@habity.levelone=控制器中的哪几天?我扩展了控制器代码以提供更好的想法。非常感谢你的帮助!
class Habit < ActiveRecord::Base
    belongs_to :user
    validates :action, presence: true

    def get_level
        case days
        when 0..10
           1
        when 11..15
           2
        when 16..20
           3
        when 21..25
           4
        else
           5
        end
    end

end
def levels
  case days
  when 0..9
    1
  when 10..24
    2
  when 25..44
    3
  when 45..69
    4
  when 70..99
    5
  else
    6
end