0
我有一個自引用循環引用最近的關聯記錄來查看它是否被追上。但是,它始終引用第一個關聯的記錄,所以它會一直處於無限循環。我認爲這是因爲ActiveRecord事務在循環中保持運行,所以它永遠不會停止並自我更新。Force update ActiveRecord association
在繼續之前,有什麼辦法強制模型重置自己嗎?
這裏是我的模型(不是說異常提升只是爲了驗證我們是否已經實際進入下一個記錄)。
class RecurringRule < ActiveRecord::Base
belongs_to :organization
has_one :last_run, :class_name => "Transaction", :order => 'id DESC'
has_many :transactions
attr_accessible :period, :last_run_id
after_create :destroy_if_period_empty
def destroy_if_period_empty
if !period?
self.destroy
end
end
def recur
@count = @count || 0
if @count > 0 then raise last_run.id.to_s end
if last_run.created_at.to_date.advance(period.pluralize.to_sym => 1) >= Date.today
new = Transaction.new({
amount: last_run.amount,
person_id: last_run.person_id,
organization_id: last_run.organization_id,
recurring_rule_id: last_run.recurring_rule_id
})
new.save!
@count += 1
self.recur
end
return @count
end
end
謝謝!像魅力一樣工作 – Asherlc