簡體   English   中英

如何在Rails中分配優先級(一種優先級隊列)?

[英]How to assign priorities (a kind of priority queue) in Rails?

假設我有一張名為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
..................

有更簡單的方法嗎?

如果你想要的只是一個簡單的用戶級別,普通的整數屬性就可以完成這項工作。

我想你試圖在這里描述某種狀態機功能。

檢查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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM