Ruby on rails 轨道,在过滤器前模拟
我有一些模型应该在创建后的几天内“完成”。 我做了一个before_过滤器,它可以找到所有应该完成的模型并完成它们。 问题是我不知道如何为同样的代码编写规范。 模型验证如下:(伪验证): before_过滤器如下所示: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
@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