0
私は作成後数日以内に「終了」しなければならない多くのモデルを用意しています。 私はbefore_filterを作って、完了して終了すべきすべてのモデルを見つけ出しました。 問題は、同じものの仕様書を書く方法を理解できないことです。 (擬似検証):rails、mock before_filter
validates :till, date: { later_than: 2.days.from_now.to_date, earlier_than: 8.days.from_now.to_date }
before_filterは次のようになります。
@models = Model.where(['till <= ? AND finished = ?', Time.now.to_date, false])
@models.each do |model|
model.update_attributes(finished: true)
end
end
だから(私のbefore_filterは私が偽の日付でそれを保存することができますテストされたモデルを見つけ作るために モデルは次のように検証されますつまり、5.days.ago)validate: false
しかし、フィルタ前に、update_attributes
の呼び出しは、モデルの日付が間違っているためfalseを返します。
before_filterが単一のテストケースのコンテキストで検証をスキップする方法を教えてください。
あなたの検証は作成時にのみ行われ、更新時には行われませんか? – phoet
私はそれを受け入れることができるので、明らかに..答えとしてこれを追加してください –