1
在應用程序中,我讓用戶可以擁有一個帳戶,並且每個帳戶可以是免費的或高級的(使用角色和康康寶石)。是否可以在特定時間後自動更改用戶帳戶角色(使用康康)?
我希望能夠將免費帳戶升級爲高級角色並選擇持續時間(如2個月),然後在2個月後,帳戶會自動恢復爲免費角色。
這可能嗎?
在應用程序中,我讓用戶可以擁有一個帳戶,並且每個帳戶可以是免費的或高級的(使用角色和康康寶石)。是否可以在特定時間後自動更改用戶帳戶角色(使用康康)?
我希望能夠將免費帳戶升級爲高級角色並選擇持續時間(如2個月),然後在2個月後,帳戶會自動恢復爲免費角色。
這可能嗎?
您應該可以使用後臺作業系統(如Resque或Delayed Job)解決此問題。
您可以創建一個夜間作業,查看所有免費帳戶並檢查升級時間戳,並在其免費試用期過期時恢復該角色。
這裏是下面的一個例子是什麼Account.revoke_expired_premium_roles()輔助會是什麼樣子,你會在夜間後臺作業或定期任務致電:
class Account < ActiveRecord::Base
# assumes Timestamp field trial_expires_at set to 2.months.from_now by default on trial start
named_scope :trial_expired, lambda {{ :conditions => ['trial_expires_at <= ?', Time.now] }}
def self.revoke_expired_premium_roles
trial_expired.find_each {|account| account.revoke_premium_role}
end
def revoke_premium_role
# Remove can-can authorization here
end
end