Ruby on rails 强制更新ActiveRecord关联

Ruby on rails 强制更新ActiveRecord关联,ruby-on-rails,ruby,database,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Database,Ruby On Rails 3,Activerecord,我有一个自引用循环,它引用最近关联的记录,以查看它是否被捕获。但是,它一直引用第一个关联的记录,因此它一直在无限循环中运行。我认为这是因为ActiveRecord事务在整个循环中持续运行,所以它从不停止并更新自身 是否有任何方法可以强制模型在继续之前重置自身 这是我的模型(并不是说引发异常只是为了验证我们是否真的进入了下一条记录) class RecurringRule“Transaction”,:order=>“id DESC” 有很多:交易 属性可访问:期间,:上次运行\u id 创建后:如

我有一个自引用循环,它引用最近关联的记录,以查看它是否被捕获。但是,它一直引用第一个关联的记录,因此它一直在无限循环中运行。我认为这是因为ActiveRecord事务在整个循环中持续运行,所以它从不停止并更新自身

是否有任何方法可以强制模型在继续之前重置自身

这是我的模型(并不是说引发异常只是为了验证我们是否真的进入了下一条记录)

class RecurringRule“Transaction”,:order=>“id DESC”
有很多:交易
属性可访问:期间,:上次运行\u id
创建后:如果\u期间\u为空,则销毁\u
def销毁(如果周期为空)
如果!时期
自毁
结束
结束
def复发
@计数=@count | | 0
如果@count>0,则将最后一次运行id提升到末尾
如果上次运行时创建的时间为截止日期提前(period.pluralize.to\u sym=>1)>=date.today
新建=事务处理。新建({
金额:上次运行的金额,
person\u id:last\u run.person\u id,
组织标识:上次运行。组织标识,
定期\u规则\u id:上次运行。定期\u规则\u id
})
新的,救命!
@计数+=1
自我复发
结束
返回@count
结束
结束
您可以试试

Model.association(force_reload=true)
参见以供参考(它也适用于有许多关系的情况)

Model.association(force_reload=true)