Ruby on rails 轨道,在过滤器前模拟

Ruby on rails 轨道,在过滤器前模拟,ruby-on-rails,ruby-on-rails-3,stub,before-filter,Ruby On Rails,Ruby On Rails 3,Stub,Before Filter,我有一些模型应该在创建后的几天内“完成”。 我做了一个before_过滤器,它可以找到所有应该完成的模型并完成它们。 问题是我不知道如何为同样的代码编写规范。 模型验证如下:(伪验证): before_过滤器如下所示: @models = Model.where(['till <= ? AND finished = ?', Time.now.to_date, false]) @models.each do |model| model.update_attributes(fi

我有一些模型应该在创建后的几天内“完成”。 我做了一个before_过滤器,它可以找到所有应该完成的模型并完成它们。 问题是我不知道如何为同样的代码编写规范。 模型验证如下:(伪验证):

before_过滤器如下所示:

@models = Model.where(['till <= ? AND finished = ?', Time.now.to_date, false])
   @models.each do |model|
     model.update_attributes(finished: true)
   end
end

@models=Model.where(['till你应该在你的验证中添加一个
:on=>:create
,这样在你的
过滤器之前调用
update\u attributes
就不会触发它。

你的验证应该在创建时启动而不是在更新时启动吗?天哪,太明显了。.请随意添加这个作为答案,这样我就可以接受了
@models = Model.where(['till <= ? AND finished = ?', Time.now.to_date, false])
   @models.each do |model|
     model.update_attributes(finished: true)
   end
end