我想弄清楚如何編寫一個耙子任務,將採取模型訂閱並檢查數據庫中的每一行中的每個列。任何列日期爲false的行,它都會用某些內容更新User模型屬性。到目前爲止,我得到了:編寫耙子,檢查模型和數據庫,然後更新另一個模型
task :check_subscription => :environment do
@subscription = Subscription.find(:all)
for_each @subscription do |sub|
Date.today.strftime('%Y-%m-%d') == sub.expiry_date.strftime('%Y-%m-%d')
end
if false
User.subscription.user_id.update_attributed(:plan_id => '200')
end
end
沒有真正的工作,我敢肯定我沒有這樣做的權利。
- 我有一個名爲Subscription.rb和User.rb兩款車型
- 訂閱數據庫中有一個名爲列EXPIRY_DATE
- 用戶有一欄plan_id的數據類型應該,如果他們的訂閱更新爲「200」是假的(過期)。
- 訂閱有列user_id和訂閱模型有
belongs_to User
。
你是什麼意思「沒有真正的工作」?請出示日誌。 –
我不認爲'for_each'是標準的Ruby。同樣在'Date.today.strftime('%Y-%m-%d')== sub.expiry_date.strftime('%Y-%m-%d')'你爲什麼要比較今天的日期和到期日但對結果無能爲力?而'if false'塊永遠不會執行。 – Bobby