假设我有一张名为power-ups的桌子(我将以游戏为例)。
我需要根据用户的“优先级”为用户分配电源。
因此,当用户第一次登录时,他获得最低功耗(优先级为0的功能)。当用户通过一个级别时,他将获得下一级别的上电(优先级为1)。
这样做最直接的方法是拥有一个名为Priority的字段,可以在admin表中手动分配给0,1,2 ....并且将按照该顺序给出加电。
我想到的伪代码,希望它有所帮助:
if (level == 0)
find power_up where priority == 0
else if (level == 1)
find power_up where priority == 1
..................
有更简单的方法吗?
答案 0 :(得分:3)
如果你想要的只是一个简单的用户级别,普通的整数属性就可以完成这项工作。
我认为你试图在这里描述某种状态机功能。
检查aasm gem
你可以拥有类似的东西:
class User
include AASM
aasm do
state :first_state, :initial => true
state :second_state
state :third_state
...
state :final_state
event :first_blood do
transitions :from => :first_state, :to => :second_state
end
end
end
可以用来做
之类的事情user.first_blood
会将用户提升为second_state