2011-08-30 38 views

回答

1

您應該可以使用後臺作業系統(如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 
相關問題